题干:

Mr. Frog has n sticks, whose lengths are 1,2, 3⋯⋯n respectively. Wallice is a bad man, so he does not want Mr. Frog to form a triangle with three of the sticks here. He decides to steal some sticks! Output the minimal number of sticks he should steal so that Mr. Frog cannot form a triangle with 
any three of the remaining sticks.

Input

The first line contains only one integer T (T≤20T≤20), which indicates the number of test cases.

For each test case, there is only one line describing the given integer n (1≤n≤201≤n≤20).

Output

For each test case, output one line “Case #x: y”, where x is the case number (starting from 1), y is the minimal number of sticks Wallice should steal.

Sample Input

3
4
5
6

Sample Output

Case #1: 1
Case #2: 1
Case #3: 2

解题报告:

看网上的题解都说是打表,那怎么打的表啊?手推?万一不正确呢?有点侥幸啊。。其实这题也可以搜索来找答案,但是还有更好的方法,比如用set,也是0ms过,我看好多打表的都是15ms,不知道是什么情况。

AC代码:

#include<bits/stdc++.h>using namespace std;int main()
{int t,n;int iCase = 0;scanf("%d",&t);while(t--) {scanf("%d",&n);printf("Case #%d: ",++iCase);if(n <= 3) {printf("0\n");continue;}int ans = 0;set<int> st;for(int i = 1; i<=n; i++) st.insert(i);set<int>::iterator it,itt,ittt,qq;int flag = 1;while(flag) {qq=st.end();qq--;qq--;for(it = st.begin(); it!=qq; ++it) {itt=++it;--it;ittt=++itt;--itt;if(*it + *itt > *ittt) {st.erase(ittt);ans++;break;}++it;if(it == qq) flag=0;--it;}}printf("%d\n",ans);}return 0 ;
}

总结:

刚开始写的时候错误还是比较多的,比如for遍历的时候it != st.end(),但是这题不行,因为itt和ittt就越界了。。所以这题qq迭代器就是记录一下st.end()往前两个是多少。还有一个坑点就是需要实时计算qq的值,因为你有erase操作,所以st.end()就在变,所以qq也要跟着变才对。再就是n<=3的时候要特判,输出格式的空格要注意。


还有一个类似的题目在别的题解上看到了这里粘贴一下:

切金条

一根金条长31厘米,如果把它切成数段,使其中的一段或几段能够接成长为1到31中任何整数的金条,请问要切几次?

题解:第一反应是斐波那契数列1 2 3 5 8 12,切5刀,结果错了,这道题应该用二进制做。123是不需要3的,因为12可以构成3,所以124是更好的选择。

这两道题好像,但是这是两道题,一定要仔细区分开。

1 2 4 8 16,和正好31,切4刀,答案是4。

【HDU - 5914 】Triangle (打表 或 set维护)相关推荐

  1. HDU 5914 - Triangle

    题目 HDU 5914 Triangle Problem Description Mr. Frog has n sticks, whose lengths are 1,2, 3⋯n respectiv ...

  2. HDU 5914 Triangle 数学找规律

    Triangle 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Description Mr. Frog has n sticks, who ...

  3. Triangle HDU - 5914

    Triangle HDU - 5914 题意: 有长度分别是1到n的n给木棍,问最少拿走几个木棍,使得剩下木棍无法组成三角形 题解: 组不成三角形的恰巧情况就是a+b<=c,也就是我们要让剩下的 ...

  4. 操作系统实验报告7:进程间通信—共享内存。实现一个带有n个单元的线性表的并发维护。

    操作系统实验报告7 实验内容 实验内容:进程间通信-共享内存.实现一个带有n个单元的线性表的并发维护. 建立一个足够大的共享内存空间(lock, M),逻辑值lock用来保证同一时间只有一个进程进入M ...

  5. DBCHM-最简单、实用的数据库表列批注维护工具

    DBCHM支持SqlServer/MySql/Oracle/PostgreSQL/Sqlite等数据库的表列批注维护管理. DBCHM有以下几个功能 表,列的批注可以编辑保存到数据库. 表,列的批注支 ...

  6. ORACLE表空间管理维护

    1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示, ...

  7. HDU - 3486 Interviewe(RMQ-st表+暴力)

    题目链接:点击查看 题目大意:给出n个点代表n个面试者,每个点的点权代表每个面试者的能力值,现在老板要求将n个人分成m组,每组有n/m个人,多出来的余数的那些人舍弃掉了,现在要让这m个组中的最大值相加 ...

  8. 中石油训练赛 - Faulhaber’s Triangle(打表)

    题目描述 The sum of the m-th powers of the first n integers can be written as a polynomial of degree m + ...

  9. hdu 4324 Triangle LOVE

    http://acm.hdu.edu.cn/showproblem.php?pid=4324 比赛的时候 脑子又短路了 "between A and B, if A don't love B ...

最新文章

  1. Linux中yum源配置及软件安装管理
  2. React开发(119):代码原因
  3. 不同Linux主机下文件的拷贝
  4. Linux下 对文件行数打乱(乱序排列)
  5. Android开发笔记(一百七十五)利用Room简化数据库操作
  6. 【Java并发编程一】线程安全问题
  7. [渝粤教育] 同济大学 线性代数学习指导 参考 资料
  8. 机器视觉工业光源知识总结
  9. 【SVN/Visual Studio】清除/更换AnkhSVN的用户登录信息
  10. 我的世界服务器无限铁傀儡,我的世界刷铁教程 铁傀儡无限刷铁攻略
  11. 3d打印打印头heating failure报错
  12. MIUI9开发版提前完成全系机型适配,近50款小米手机可升级
  13. flutter HEX 色值,转换成RGBO 格式
  14. 电信客户流失数据分析(一)
  15. 重庆华侨城跨界联合潮牌T.M.D PCP发财潮流文化艺术聚会国庆开档
  16. 使用GDB调试Linux内核空指针问题
  17. jieba分词词性标注含义
  18. 用wxpython编写登录界面_用wxPython打造Python图形界面(上)
  19. 建设“东数西算”工程的实施办法以及背后价值
  20. nslookup命令使用技巧

热门文章

  1. java 持久_Java持久锁总结 -解道Jdon
  2. 环形队列出队的元素怎么输出出来_队列的知识讲解与基本实现(数据结构)
  3. java mongodb 关闭连接_如何在mongodb上使用java驱动程序保持连接池关闭?
  4. c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
  5. java implements interface_java接口(interface)与现实(implements)
  6. micropython lcd触摸屏显示中文_基于Micropython的天气显示 进程帖
  7. python生成器迭代_python中的生成器和迭代器
  8. python3文件的编码类型是什么_python3.x - 怎么查看某个文件的编码方式?python
  9. tp5 php正则邮箱,TP5验证器使用实例
  10. 允许使用抽象类类型 isearchboxinfo 的对象_此对象非彼对象(面向对象)3