SDUT OJ 周赛 找有毒的那杯水(思维逻辑 + 折半思想 )

你打我啊

Time Limit: 500ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

最近看了一个非常好玩的题,如果有972杯水,其中有971个没有毒的,1个有毒的, 其中有毒的水的毒性需要一周才会发作,那么,我们最少需要多少只小白鼠才能够在一周的时间内确定那一杯水是有毒的。当然这种水题肯定难不住各位队员们。所 以我要出的题和上述的东西没有一点关系。

那既然上面的东西和这次的题没有什么关系那我为什么要说呢,很明显,我在凑字数,我实在是不知道该怎么凑了呀,他们说让我来一个又臭又长一看就不想做的题,还让我用英文写,所以嘛,我英语不好只能先来个中文废话了,Ok上正题吧。

Christmas was coming .Mr Smith had no money to buy any presents for his children .His wife was ill and he spent a lot of money on her medicine .

And the harvest was bad and all his family were going go be hungry the next spring .He was quite worried about it .

“We had only a cock ,”said Mrs Smith one day .“You’d better take it to the town .Sell it there and buy some cakes and sweets for our children .”

“It’s a good idea !”the man said and caught the cock the next morning and put it into a box .It was difficult to walk on the road covered with thick snow .

Two hours later he was very tied and wanted to have a rest .He put the box to the ground and sat down .

“The air in the box must be close ,”the man said to himself .“I’d better let the cock walk outside for a while ,or it’ll die .”

So he put the cock to the ground .When he started again ,he couldn’t catch it any longer .

“How foolish you are !”Mr Smith called out angrily .“You can herald the break of day at night but you cann’t find the way to the town in the daytime !”

Ok,It is a nonsense.Our question is what I mentioned in the first paragraph,if we have N cups of water.How many mice we need.

输入

多组输入,每组输入一个N(1<=N<=2^32-1);

输出

输出小白鼠的数目

示例输入

1000
972 

示例输出

10
10
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>  

using namespace std;  

int MAX(int a, int b)
{
    return a>b?a:b;
}  

int main()
{
    unsigned int n;
    unsigned int cnt;
    while(scanf("%d", &n)!=EOF)
    {
        cnt=0;
        while(n!=0)
        {
            n=n/2;
            cnt++;
        }
        cout<<cnt<<endl;
    }
    return 0;
}
时间: 2024-08-30 06:42:44

SDUT OJ 周赛 找有毒的那杯水(思维逻辑 + 折半思想 )的相关文章

SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2-&gt;sqrt(n) 即可 )

亲和数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对. 比如220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. 284的所有真约数和为: 1+2+4+71+142=220. 你的任务就编写一个程序,判断给定的两个数是否是亲和数. 输入 输入数据第一行包含一个数M,接下有M行,每行一个实例,

SDUT OJ 3045 迷之图论 (树的直径)

题目地址:SDUT OJ 3045 这题比赛的时候想的差不多..但是总是觉得不对..写了一次就没再写,然后删了..当时没想到的是第二次求出来的就是最长链..当时想到的两次bfs找最大值(这一种方法其实结果也对..TAT..),还有找到点后在回溯减去重点等等..但总觉得好像都不太对...赛后才知道这题原来是树的直径.....牡丹江区域现场赛的时候遇到过,不过赛后也没看... 找树的直径的方法其实就是先任取一点进行bfs,找到最远的一点,这时最远的一点肯定是最长链端点之一,然后再从这一最远点开始bf

SDUT OJ 1704 数字统计问题

SDUT OJ 1704 数字统计问题 博客原文地址:http://blog.csdn.net/xuechelingxiao/article/details/40930259 昨天晚上学弟问了OJ上这个题,群里说不清楚,就写个解题报告吧. 题目大意: 中文题目,就不翻译了-.- 解题思路: 不知道算不算一个典型的数位DP,反正有点那个意思,感觉确实也可以用记忆话搜索,两个差不多的意思. 我找了一下,这个问题好像是算法设计与实验题解上面的一道题,别的OJ上没有,所以就在自己OJ上做了. 大体的思路

SDUT OJ 1124 飞越原野 (三维BFS练习)

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退.但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住. 终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了.然而,敌人依然紧追不舍.不过,泰拉希尔的地理条件对法里奥十分有利,众多的湖泊随处分布.敌人需要绕道而行,但法里奥还是决定找一条能尽快回到基地的路. 假设泰拉希尔原野

nyist oj 138 找球号(二)(hash 表+位运算)

找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY",表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分

SDUT OJ -2892 A

A Time Limit: 60ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给出n(1<= n && n <= 2*10^6)个字符串,每个字符串只包含小写英文字母,且最多有五个.问这n个字符串中出现次数最多的有多少个. 输入 单组输入.第一行输入一个数字n,接下来n行,每行包含一个字符串. 输出 输出一个数字代表答案. 示例输入 5 aba abb w aba z 示例输出 2 提示 字段树,模板题 #include <iost

数据结构与算法问题 sdut oj 2144 最小生成树

题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的.现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市. 输入 输入包含多组数据,格式如下. 第一行包括两个整数n m,代表城市个数和可以修建的公路个数.(n<=100) 剩下m行每行3个正整数a b c,代表城市a 和城市b之间可以修建一条公路,代价为c. 输出 每组输出占一行,仅输出最小花费. 示例输入 3 2 1 2 1 1 3 1 示例输出 2 #include

sdut oj 2059 简单 n! (一个大数与一个小数相乘的算法 、一个大数与一个小数的除法算法 【模板】 )

简单n! Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给定一个数n(0 <= n <= 150), 求0到n中所有数的阶乘. 输入 题目有多组数据,处理到文件结尾.输入一个数n. 输出 输出阶乘,形式如:4! = 24.每组数据输出后跟一个空行. 示例输入 1 4 示例输出 0! = 1 1! = 1 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 提示 代码: #include <stdi

SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河.但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否