CSU 2018年12月月赛 G(2219): Coin
Description
有这样一个众所周知的问题:
你面前有7个硬币,其中有一个劣质的(它比正常的硬币轻一点点),你有一个天平,问需要你需要使用天平多少次能保证找到那个劣质的硬币。
众所周知的算法是:
第一次 把7个硬币分成3+3+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币在较轻的那一堆。
第二次 把3个硬币分成1+1+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币是较轻的那一堆的那一个硬币。
综上一共需要两次。
那么如果是9枚硬币呢?
第一次 把9个硬币分成4+4+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币在较轻的那一堆。
第二次 把4个硬币分成2+2一共2堆,把这两堆放到天平的两端,天平必然会倾斜,说明劣质的硬币在较轻的那一堆。
第三次 把2个硬币分成1+1一共2堆,把这两堆放到天平的两端,天平必然会倾斜,说明劣质的硬币是较轻的那一堆的那个硬币。
综上一共需要三次。
现在,问题来了。要是摆在你面前的是n枚硬币,你需要用以上描述的这种算法操作多少次,才能保证找到那个劣质的硬币呢?
Input
一行一个正整数n,表示硬币的总数。
n < =109
Output
一行一个整数,表示需要使用天平多少次能保证找到那个劣质的硬币
Sample Input
7
Sample Output
2 题意:这题看过程就知道了,每次分成两堆,能整份两堆就是一人一半,不然就拿出一个,剩下的分成一人一半,然后最后剩到一人一个的时候(所以是>=2,不是>2)就知道谁轻了。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <math.h>
#include <set>
using namespace std;
int n,x,temp;
int main()
{
cin>>n;
int ans=;
while(n>=)
{
ans++;
n=n/;
}
cout<<ans<<endl;
return ;
} /**********************************************************************
Problem: 2219
User: therang
Language: C++
Result: AC
Time:4 ms
Memory:2020 kb
**********************************************************************/
CSU 2018年12月月赛 G(2219): Coin的更多相关文章
- CSU 2018年12月月赛 B 2214: Sequence Magic
Description 有一个1到N的自然数序列1,2,3,...,N-1,N. 我们对它进行M次操作,每次操作将其中连续的一段区间 [Ai,Bi][Ai,Bi] (即第Ai个元素到第Bi个元素之间的 ...
- CSU 2018年12月月赛 H(2220): Godsend
Description Leha somehow found an array consisting of n integers. Looking at it, he came up with a t ...
- CSU 2018年12月月赛 F(2218): Finding prime numbers
Description xrdog has a number set. There are 95 numbers in this set. They all have something in com ...
- CSU 2018年12月月赛 D 2216 : Words Transformation
Description There are n words, you have to turn them into plural form. If a singular noun ends with ...
- CSU 2018年12月月赛 A 2213: Physics Exam
Description 高中物理老师总认为给学生文本形式的问题比给纯计算形式的问题要求更高.毕竟,学生首先得阅读和理解问题. 因此,他们描述一个问题不像”U=10V,I=5A,P=?”,而是”有一个含 ...
- CodePlus2017 12月月赛 div2可做题2
11月的月赛错过了,来打12月月赛,由于很(zi)想(ji)拿(tai)衣(ruo)服(la),所以去打div2. T1是一个sb模拟,但是机房全卡死在这道语文题上了,基本上弄了一个半小时,T2可以秒 ...
- 2018年12月8日广州.NET微软技术俱乐部活动总结
吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...
- [2018-11-27]2018年12月1日宁波dotnet社区线下活动
离上次活动,转眼又过了一个月,幸得各路大神支持,于本周六(12月1日),宁波dotnet社区的线下分享活动又来啦! 活动嘉宾及主题 董斌辉 2015-2019年微软全球最有价值专家(.NET方向) 2 ...
- web前端开发2018年12月找工作总结
2018年的冬天额外的冷,由内致外... 作为一名刚刚踏入社会的实习生,可谓是狠狠的体验了一把什么叫社会(同时也感叹父母赚钱真的很不容易) 前几天看见这样一句话"如果你不知道社会的辛苦,要么 ...
随机推荐
- pycharm中关于django和buildout的配置
pycharm提供了对django和buildout的支持,具体的配置如下: 1.django support 在pycharm的settings中修改如下3个选项 1)django project ...
- HDU 5514 Frogs (数论容斥)
题意:有n只青蛙,m个石头(围成圆圈).第i只青蛙每次只能条ai个石头,问最后所有青蛙跳过的石头的下标总和是多少? 析:首先可以知道的是第 i 只青蛙可以跳到 k * gcd(ai, m),然后我就计 ...
- UVa 12714 Two Points Revisited (水题,计算几何)
题意:给定一条线段,让你求一条线段与已知线段垂直,并且所有线段的坐标的点的坐标都不大于给定的坐标的最大值且不能为负数. 析:没啥好说的,随便找一条就好. 代码如下: #pragma comment(l ...
- bat批处理文件夹内文件名的提取
有时候会在做某些东西的时候 我们要提取某个文件夹的所有文件名,一个一个打出来那不是 现实的 所以这个时候就用到了一个比较简便而又快捷的方法 在所在的文件夹内新建一个a.txt 在a.txt编辑DIR ...
- LuoguP1314 聪明的质检员 【二分答案/前缀和】
美丽的题号预示着什么... 描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1.给定m个 ...
- Ubuntu 下Python和pip的版本
首先python只是个指向特定版本的软链接,具体指向那个是可以我们自己设置的, 而在Ubuntu中默认是指向python2的,并且python2其实也是个指向特定版本的软链接 所以我们要做的就是删除这 ...
- html 解决空格显示问题
前端开发者都知道,在html中手动输入多个空格或者是回车,在页面解析的时候都被解析成一个空白显示,但有时候的需求要求显示多个空格,这个问题怎么解决呢?根绝我个人的经验,目前找到了以下集中解决办法: 1 ...
- 在myeclipse中maven遇见的问题
An internal error occurred during: "Retrieving archetypes:". Java heap space 表示你的myeclipse ...
- CentOS系统里如何正确取消或者延长屏幕保护自动锁屏功能(图文详解)
不多说,直接上干货! 对于我这里想说的是,分别从CentOS6.X 和 CentOS7.X来谈及. 1. 问题:默认启动屏幕保护 问题描述: CentOS系统在用户闲置一段时间(默认为5分钟)后, ...
- C# KeepAlive的设置
C# KeepAlive的相关设置 网上有很多相关KeepAlive的内容,终于找到了有关C#的这方面资料,设置了下,有行可靠! TcpListener myListener = new TcpLis ...