思路:

数学归纳。

设最少所需刻度数为$s$,则$n和s$的关系为:

$n=1,s=0;$

$n=2,s=1;$

$n=3,s=3;$

...

观察发现$s=n(n-1)/2$,得到$sn$时,满足条件。

然而只有50分。。

因为我手算错了,$n=3,s=2$。

然而人不能没有信仰,就把$<$改成$\leq$,A了。。

正解:

当$n>3$时,一定不能满足条件。

官方题解

from nneztlk

算法一

直接枚举刻度, 时间复杂度为 O((n(n+1)/2−1n−1))O((n(n+1)/2−1n−1)). n=5n=5 时这个数是 (144)=1001(144)=1001, n=8n=8 时这个数是 (357)=6724520(357)=6724520. 期望得分 10∼2010∼20 分.

算法二

我们需要题目描述中的 sj−si (0≤i<j≤n)sj−si (0≤i<j≤n) 这 n(n+1)2n(n+1)2 个数取到 1∼n(n+1)21∼n(n+1)2 的所有整数, 所以每个整数只能取一次, 即每种长度只能被一种方法量出. 特别地, si−si−1(1≤i≤n)si−si−1(1≤i≤n) 这 nn 段长度两两不同, 故只能是 1,2,…,n1,2,…,n 的一种排列.

枚举排列, 时间复杂度为 O(n!)O(n!). n=8n=8 时这个数是 4032040320. 期望得分 2020 分.

算法三

事实上, n=1,2,3n=1,2,3 时可以直接试出刻度方案, 分别为 ∅,{1},{1,4}∅,{1},{1,4}, 而对所有 n>3n>3 都不存在满足要求的刻度. 证明如下:

记 M=n(n+1)2M=n(n+1)2, 则对 n>3n>3, M≥10M≥10. 现假设存在满足要求的刻度方案. 由于需要量出 M−1M−1 的长度, 所以 11 或 M−1M−1 处必须有刻度, 由对称性不妨设 11 处有. 要量出 M−2M−2 的长度, 2,M−2,M−12,M−2,M−1 中需要有一处有刻度, 而如果 22 或 M−1M−1 处有刻度, 则可以用两种方法量出长度 11, 矛盾! 所以 M−2M−2 处必须有刻度. 此时由 (M−2)−1=M−3(M−2)−1=M−3, M−3M−3 的长度已经可以被量出. 要量出 M−4M−4 的长度, 2,4,M−3,M−42,4,M−3,M−4 四处必有一处有刻度. 容易发现只有 44 处的刻度不会引起重复.

现在已经知道 1,4,M−21,4,M−2 处都需要有刻度, 而长度 M−5M−5 尚未被量出. 欲量出 M−5M−5, 需要 3,5,M−5,M−4,M−13,5,M−5,M−4,M−1 中的一处有刻度. 然而它们都会导致 1,2,31,2,3 中的某个长度能被两种方法量出, 矛盾! 故不存在满足要求的刻度.

所以只需判断 nn 是否大于 33. 时间复杂度 O(1)O(1), 期望得分 100100 分.

我的AC代码:

 #include<cstdio>
int main() {
int t;
scanf("%d",&t);
while(t--) {
int n;
scanf("%d",&n);
printf("%d\n",((n*(n+)>>)<=n)?:-);
}
return ;
}

最短代码(Python2.7):

 print'\n'.join(['-1'if input()>3 else''for i in range(input())])

[UOJ282]长度测量鸡的更多相关文章

  1. [UOJ 282]长度测量鸡

    Description

  2. 【uoj#282】长度测量鸡 结论题

    题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...

  3. uoj#282. 长度测量鸡(构造)

    传送门 打表题--只有\(n\leq 3\)有解否则无解→_→ 或者严格证明的话是这样,因为算上端点一共\(n+1\)个点,共\(\frac{n(n+1)}{2}\)个点对,所以点对之间两两距离不相等 ...

  4. UOJ Goodbye Bingshen

    在叶子童鞋的推荐下打了这场比赛... 感觉被虐爆了... 怎么这么多构造题... 我还没写过呢... 交互题是毛线...看了好久没看懂...就放弃了...(我语文好差QAQ...) 最后只会T1... ...

  5. HFS远程命令执行漏洞入侵抓鸡黑阔服务器

    先来科普一下: HFS是什么? hfs网络文件服务器 2.3是专为个人用户所设计的HTTP档案系统,如果您觉得架设FTP Server太麻烦,那么这个软件可以提供您更方便的网络文件传输系统,下载后无须 ...

  6. 百钱买百鸡问题 php版本

    /* * 百钱买百鸡问题 * * 我国古代数学家张丘建在<算经>一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五:鸡母一,值钱三:鸡雏三,值钱一:百钱买百鸡,则翁.母 ...

  7. Java中关于先有鸡还是先有蛋的问题----Class&Object

    在Java中,我们常常会看到一个类型:Class.并且在类似Person.class,cache.getClass()等代码中见到它的身影. 众所周知,Class是用来描述一个类的类型,而Object ...

  8. Html菜鸡大杂烩

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. UML:类图复习-鸡生蛋,蛋生鸡

    这是前一阵<高级软件工程>课堂上,老师随堂出的一道讨论题,随手贴在这里: ps: 今天是520,正好聊一些OoXx,关于爱的扯淡话题:) 题目:“鸡生蛋,蛋孵鸡”,世间万物生生不息,如何用 ...

随机推荐

  1. 论文阅读笔记二十八:You Only Look Once: Unified,Real-Time Object Detection(YOLO v1 CVPR2015)

    论文源址:https://arxiv.org/abs/1506.02640 tensorflow代码:https://github.com/nilboy/tensorflow-yolo 摘要 该文提出 ...

  2. Python enumerate() 函数

    描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. Python 2.3. 以上版本可用,2. ...

  3. ubuntu 手动更新源 以及使用sudo update与upgrade的作用及区别

    一.今天更新一下我的ubuntu系统,用了几个源发现不怎么好用 上网查了一下发现有说阿里云的源挺好用 然后我试了一下 下载速度还挺快,下面分享一下怎么手动添加源列表 1.最好先做一下备份 sudo c ...

  4. 新版的K8S中的flannel.yaml文件中要注意的细节

    部署flannel作为k8s中的网络插件,yaml文件都大小同异. 但在要注意以下细节. 以前,只需要前面master判断. 现在也需要有not-ready状态了. tolerations: - ke ...

  5. [转] 深入浅出mongoose-----包括mongoose基本所有操作,非常实用!!!!!

    深入浅出mongoose mongoose是nodeJS提供连接 mongodb的一个库. 此外还有mongoskin, mongodb(mongodb官方出品). 本人,还是比较青睐mongoose ...

  6. springboot的三种启动方式

    一:IDE 运行Application这个类的main方法 二:在springboot的应用的根目录下运行mvn spring-boot:run 三:使用mvn install 生成jar后运行 先到 ...

  7. bzoj 5099: [POI2018]Pionek

    题解: 还是比较简单的一道题 考虑现在有一个向量,当且仅当下一个向量与它夹角<90度这个向量的模长才会增加 接下来怎么做呢 如果我们去枚举初始向量,向量方向会随着新增向量而变化 随着不断顺时针的 ...

  8. [BZOJ3011][Usaco2012 Dec]Running Away From the Barn

    题意 给出一棵以1为根节点树,求每个节点的子树中到该节点距离<=l的节点的个数 题解 方法1:倍增+差分数组 首先可以很容易的转化问题,考虑每个节点对哪些节点有贡献 即每次对于一个节点,找到其第 ...

  9. C++ 语法--变量和常量

    起步 Hello world! #include <iostream> int main() { std::cout<<"Hello, world!"; ; ...

  10. 【NPM】常见问题解决

    问题列表 问题一:npm install 执行报错 npm ERR! Unexpected end of JSON input while parsing near '...ependencies&q ...