发 零 食

(dropping.cpp/c/pas)

Description

HKD 看学弟学妹们学习辛苦,决定给发零食吃

HKD 是土豪,所以他决定买零食的时候,从 1 块钱的开始买,然后买 2 块钱的,然后 3 块钱

的,……,直至 D 块钱的。而且 k 块钱的零食买 2^(k-1)个。

但 HKD 从来不吃零食,所以他不知道他买的零食是否好吃。

于是他把所有零食编号,怎么编呢?

对于价钱为 k 的零食,从 1 开始编,然后 2,3,编到 2^(k-1)

例:1 块钱的:1

2 块钱的:1 2

3 块钱的:1 2 3 4

学编程的基本功是搜索嘛

为了考验学弟学妹们的搜索能力

HKD 把所有零食掺杂在了一起,送到学弟学妹们的面前(送货上门,真好)

他规定:

1、只能排队一个一个开始搜

2、所有人最终只能吃 1 个零食

3、所有人只能吃最贵的零食

4、 所有人搜索零食的时候, 只能从 1 块钱的开始搜, 然后搜 2 块钱的, 然后搜 3 块钱的……,

直到最贵的

5、初始时认为所有零食都是好吃的

6、 为了增加难度, HKD 制定了新规定: 若一个人搜到的第 i 块钱的编号为 j 的零食是好吃的,

那么他就把这个零食更改为不好吃,然后去搜第 i+1 块钱的编号为 j*2-1 的零食。若一个人

搜到的第 i 块钱的编号为 j 的零食是不好吃的,那么他就把这个零食更改为好吃,然后去搜

第 i+1 块钱的编号为 j*2 的零食

注:若 n 个人都最后搜到了同一个零食,那么他们就分享一个吧

然而不知道为啥,HKD 想知道最后一个人吃的是编号为几的零食

那就麻烦最后一个人告诉他吧

注:若其中有一个人无法搜到最贵的零食,就告诉他-1

Input

第一行输入测试点编号

下一行输入 T,表示有 T 组数据

接下来 T 行,每行输入 2 个数输入 D 和学弟学妹的人数 M

Output

对于每组测试数据

输出一行 k : ans,表示第 k 组数据的答案为 ans

冒号与每个数字之间空 1 格

每 2 组数据之间空一行

Example

dropping.in

1

6

4 2

3 4

10 1

2 2

8 128

dropping.out

1 : 12

2 : 7

3 : 512

4 : 3

5 : 255

Hint

测试点编号

1、2

T<=1 D<=10

3、4、5

T<=20 D<=25

6、7、8、9

T<=700 D<=30

10 T<=1 D<=1

学弟学妹人数 M <2^31 且不超过 D 块钱的零食个数

 1 #include <cstdio>
 2 #include<cstring>
 3 using namespace std;
 4
 5 int t,a, cnt, I, d;
 6 int num[100000];
 7 void mul()
 8 {
 9     int x=0;
10     for(int i=1;i<=num[0];i++)
11      {
12          num[i]=num[i]*2+x;
13          x=num[i]/10;
14          num[i]%=10;
15      }
16     if(x) num[++num[0]]=x;
17 }
18 void add()
19 {
20     int x=0;
21     num[1]+=1;
22     int i=1;
23     while(num[i]>10)
24     {
25         num[i+1]+=1;
26         i++;
27     }
28     if(num[num[0]+1]) num[0]++;
29 }
30 int main()
31 {
32     freopen("dropping.in","r",stdin);
33     freopen("dropping.out","w",stdout);
34     scanf("%d",&a);
35     scanf("%d",&t);
36     for(int k=1;k<=t;k++)
37     {
38         scanf("%d%d",&d,&I);
39         memset(num,0,sizeof(num));
40         cnt =  1;
41         num[0] =num[1]=1;
42         while (cnt < d)
43         {
44             if (I % 2)
45             {
46                 I =  (I + 1) / 2;
47                 mul();
48             }
49             else
50             {
51                 I /= 2;
52                 mul();
53                 add();
54             }
55             cnt++;
56         }
57         printf("%d : ",k);
58         for(int i=num[0];i;i--) printf("%d",num[i]);
59         printf("\n\n");
60     }
61     return 0;
62 }
时间: 2024-11-06 03:32:29

发 零 食的相关文章

陈利文暑假第零发!!!

 因为之前要准备期末考试(还好没挂...),所以 好久没认真写代码了.之前的几次BC都是注册没有打的,今天打了一次完全没有感觉!(打BC不开心,B题还在超时,明天继续改!) 至于暑假我想先花一点时间熟悉一下以前学习的算法,希望能够加深理解,最重要的还是要能够灵活运用啊啊啊! 然后是想学习图论专刷图论,顺带学习一下基本的数论算法(我要刷HDU的数论),Dp太难,感觉题做少了不行,还是放到大二上吧!现在争取能两三天做一个吧(当然是先不看题解的啊,如果十天八天做不出来我就要哭了!!!!)! 至于多校

六星经典CSAPP笔记系列 - 作者:西代零零发

六星经典CSAPP笔记(1)计算机系统巡游 六星经典CSAPP笔记(2)信息的操作和表示 六星经典CSAPP-笔记(3)程序的机器级表示

【c++】零基础的自修课 01-开发工具的安装(code::blocks)

1/开发工具的下载地址: ·(选用 visual studio开发工具,有区分mac和windows版本)https://visualstudio.microsoft.com/zh-hans/downloads/ ·(选用code::blocks ) Windows:https://blog.csdn.net/hrainning/article/details/80607882 mac:http://www.codeblocks.org/downloads/26#mac 如果提示“打不开“Cod

毒嘅人对质量嘅要求好简单,一定要食死人就成咗

钟武仲有边丁两个笑到淫.荡放浪,眼神更加系荒唐嘅喺两女身上肆无忌惮嘅游走,此时此刻,钟武同边丁似乎已经揸手咗一切,行呢大山主人一样,俯视两女,予取予夺.两女再自武同边丁两人手板之中得惨叫挣扎嘅份儿.丁氏姐妹,仲有乸蛇蝎心中生出一种不妙嘅感觉嚟,事实上,一般情况下,虽然个个都睇唔起佢哋啲周身毒.药味,捱毒制毒嘅嘢,但冇边个愿意得罪佢哋啲毒家.因为毒家系专门做活人变死人买卖,捱炼神毒.药嘅标的就系杀人.一个制毒高手,绝对都系一个投毒杀人高手. http://bbs.elecfans.com/user

18-硬币找零

/*                                     硬币找零 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述    在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计算最少的找零硬币数,以便他们能从银行拿回最少的硬币数,并保证能用这些硬币发工资.    我们应该注意到,人民币的硬币系统是 100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,    0.02,0.01 元,采用这些硬币我们可以对任

朝得敕嘅咬住青枣,仲系咁嘅食呀

朝得敕嘅咬住青枣,仲系咁嘅食呀,摸出苹果手机嚟,商接受到咗一封好特别嘅邮件,呢系跨国嘅,都系定时发送嘅,嚟自狮子国.发件人系一个雪漏好熟嘅姑娘,姓柳,名都姝,念嘅话,三个暗恋妹子,雪漏搞唔好对柳静姝嘅印象都好淡咗嘅,将个名忘掉简直正常啊.雪漏呢个人呢,忘性系好大嘅,就连好多亲戚仔叫咩都记唔住,横掂基本上系过年嗰阵先会见到一面,想唔起唔好正常吖.而家,喺狮子国硕士毕业嘅柳静姝,跑回龙国攻读博士,就喺今日晏昼,飞机降落,就会喺四海城嗰个机场,邮件入面讲嘞,如果雪漏仲记唔记得佢嘅话,就嚟揾佢啦. ht

最易藏虫的食华润紫竹毓婷品牌获2013中国创新营销案例奖感冒时的自我紫竹药业3

[电视,电脑不要进卧室]电脑或电视放进卧室都会在一定程度上干扰到人们的睡眠,而且还会在使用过程中产生一些辐射,影响健康.所以在条件允许的情况下,一定要将这些电器请出卧室. 华润紫竹毓婷品牌获"2013中国创新营销案例奖" [三种护心的食物]:1.豆腐:能够降低LDL(坏)胆固醇水平,从而减少心血管疾病发生的危险性.2.菜豆:是一种低脂.高纤维的蛋白质来源,它含丰富维生素,不含胆固醇,糖含量低,故是心脏的益友.3.沙丁鱼:含大量OMEGA-3脂肪酸.钙质与烟酸,可预防心脏病. [&quo

STOI爆零记~

又是一年stoi,回想起去年stoi爆零的事还历历在目,仿佛就在昨天,去年爆零的感觉好像现在还感受得到.. 其实今年stoi我没有给自己太大pressure,目标就是能进市队就好了..(结果还是考挂并且被初一神虐的渣..) 感觉自己很早就到了山区学校(金中..),没想到来的时候基本各位dalao都到了,不管怎样先orz,rp++. 在金中校门口背了一下模板(spfa,树状数组,高精度...等等),然后惊奇地发现今年竟然有两位龙实的dalao,顿时感觉自己地位难保.. 7:50进去,到机房门口..

贪心算法(发工资)

发工资咯:) Problem : 430 Time Limit : 1000ms Memory Limit : 65536K description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100