POJ 3210 Coins (很好的想法题)
来源:互联网 发布:站长吧源码论坛 编辑:程序博客网 时间:2024/05/16 12:57
http://poj.org/problem?id=3210
这是一道很好的思考题。
关键信息:所求的x是对于任意一种初始情况,使所有硬币正面或反面朝上的最少翻转此数,并且注意“only one coin could be flipped each time”,即每次只能翻转一枚硬币。
所以:
1. 答案要具有普适性,除了n为1时x=0,当n>1时x必为正,但是对于硬币全部朝上的情况也要翻转x次,由此可以得出:必须翻转偶数次;
2. 若n为偶数,考虑正面和反面都为奇数个硬币的情况,此时翻转次数必为奇数,矛盾,故此时No Solution;
3. 若n为奇数,则正面和反面的硬币数必为一奇一偶,那就不会出现“必须”翻转奇数次的情况(翻转偶数的硬币即可),所以x可能存在。
那我们来看看x的上界是多少:x不会大于n,反之,那对于任何情况至少会有一个硬币翻转了2次,不符合“最少”的要求,所以x<=n,但是n是奇数,x又必须为偶数,所以x<=n-1
那x的下界呢?来看看只有一个硬币朝上其余硬币都朝下的情况:若翻转那个朝上的硬币,则翻转次数必为2k+1,矛盾,所以我们应翻转其余n-1个朝下的硬币,这样x>=n-1
由这两个不等式可以得出当n为奇数时x必然存在,并且x=n-1
(代码就不贴了)
当然你觉得这题不过瘾的话还可以看看这道差不多(思考多,代码短)的题:POJ 2484 A Funny Game
1 0
- POJ 3210 Coins (很好的想法题)
- codeforces #317 C. Lengthening Sticks (很好的想法题)
- poj 3210 Coins
- poj 3210 Coins
- POJ 3210 : Coins
- Poj 3210 Coins(推理)
- poj 1002 很好的水题
- POJ-1977 很好的矩阵乘法题..
- POJ-3210-Coins-解题报告
- poj 2452 想法题
- 原创/收集一些好的idea吧->然后出一些题【想法很好】
- POJ Coins
- POJ Coins
- POJ 2479的简单想法
- (优化的有限背包) poj 1742 Coins
- poj 2008 #数学想法题
- poj 2431 Expedition 贪心+优先队列 很好很好的一道题!!!
- poj 1125 Stockbroker Grapevine 很好的一道floyd入门题
- 黑马程序员-第五天(面向对象)
- 蓝桥杯-入门训练四道题
- [Java]Swing基础编程【1】基本组件的使用
- 杰森·斯坦森 Jason Michael Statham 2000-2012年 27部合集 435G
- xcode如何添加libCurl
- POJ 3210 Coins (很好的想法题)
- Java知识总结-File类
- saltstack
- EJB3.0之HelloWorld
- Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种
- 我特别好也很快乐
- LeetCode 142 — Linked List Cycle II(C++ Java Python)
- 网络子系统82_inet协议族-SOCK_RAW(三)
- cookie 和session 的区别详解