博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3210 : Coins
阅读量:5099 次
发布时间:2019-06-13

本文共 1890 字,大约阅读时间需要 6 分钟。

POJ 3210 : Coins

Time Limit: 1000MS Memory Limit: 131072K

Total Submissions: 7001 Accepted: 4616

Description

Snoopy has three coins. One day he tossed them on a table then and tried to flip some of them so that they had either all heads or all tails facing up. After several attempts, he found that regardless of the initial configuration of the coins, he could always achieve the goal by doing exactly two flippings, under the condition that only one coin could be flipped each time and a coin could be flipped more than once. He also noticed that he could never succeed with less than two flippings.

Snoopy then wondered, if he had n coins, was there a minimum number x such that he could do exactly x flippings to satisfy his requirements?

Input

The input contains multiple test cases. Each test case consists of a single positive integer n (n < 10,000) on a separate line. A zero indicates the end of input and should not be processed.

Output

For each test case output a single line containing your answer without leading or trailing spaces. If the answer does not exist, output “No Solution!”

Sample Input

2

3
0

Sample Output

No Solution!

2

题意我认为非常难理解,意思是n个硬币,不管是怎么摆的(正面或是反面),是否能找到一个最小值x。使得这n个硬币。通过x次翻转,必能到达全正或是全反的状态。能。则输出x的值。

不能,则输出“No Solution!”

分情况讨论:

如果n是一个偶数:

如果向上的数量为偶数,则向下的数量也一定为偶数,所以这个最小值x也一定是偶数。
如果向上的数量是奇数。则向下的数量也是奇数,这个最小值x一定得是奇数。

此时。

得到的x在两种情况中互相矛盾,所以偶数的话,要输出“No Solution!”

如果n是一个奇数:

事实上n是一个奇数的话,仅仅有一种情况了,向上的数量是m,向下的数量是n-m。两者一定一个奇数。一个偶数。此时向上即向下,向下即向上。
此时会发现偶数次翻转就可以完毕任务,仅仅需将状态不同的两种硬币中,为偶数的数量的那一堆翻转就可以,此时两堆硬币已经达到了同上或是同下。这时,多出来的反转次数,仅仅需对一个硬币来回翻转,由于是偶数次,所以不影响最后状态了。

那么这个x最小是多少?
如果n个硬币。1个向上,n-1个向下。依据上面所述,这时须要n-1次翻转。这时是满足全部情况的最小值了。

代码:

#include
using namespace std;int main(){ int n; while(cin>>n) { if(n==0) break; if(n%2) { cout<
<

转载于:https://www.cnblogs.com/llguanli/p/8284048.html

你可能感兴趣的文章
Django中间件
查看>>
xcode 5.1安装vvdocument
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
MySQL更改默认的数据文档存储目录
查看>>
替代微软IIS强大的HTTP网站服务器工具
查看>>
6.5 案例21:将本地数据库中数据提交到服务器端
查看>>
PyQt5--EventSender
查看>>
android 通过AlarmManager实现守护进程
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
win7下把电脑设置成wlan热
查看>>
Java 多态 虚方法
查看>>
jquery.validate插件在booststarp中的运用
查看>>
java常用的包
查看>>
PHP批量覆盖文件并执行cmd命令脚本
查看>>
Unity之fragment shader中如何获得视口空间中的坐标
查看>>
支持向量机——内核
查看>>
MFC注册热键
查看>>
万能的SQLHelper帮助类
查看>>
uboot分析:uboot的启动过程分析
查看>>
tmux的简单快捷键
查看>>