KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[一些小小的想法]记我在KFC看到的光芒,度过的日子

[ 14003 查看 / 30 回复 ]

回复:[一些小小的想法]记我在KFC看到的光芒,度过的日子

信息学竞赛...那么我给个题目吧,算法比较简单,理解了题意就能做出来。

邮箱制造商的问题

从前,当瑞典的小孩仍被允许玩爆竹的时候,成群结队的兴奋的孩子们常常给他们居住的城市带来麻烦,他们喜欢用爆竹把东西炸毁。较小的箱子容易被炸毁,所以邮箱成了一个热门的攻击目标。现在,一个邮箱制造商想知道他们生产的新邮箱能够承受多少爆竹的同时爆炸而不被炸毁。因此他雇佣你来帮助他。他会给你k(1<=k<=10)个完全相同的邮箱,每个邮箱最多能放进m(1<=m<=100)个爆竹(所有爆竹也都相同)。但是,他不知道需要给你多少个爆竹,才够解决这个问题,因此求教于你。你想了一会儿说:“是啊,一个邮箱被炸毁之后,就不能够再用了,所以,如果你只给我k=1个邮箱,我就不得不从1个爆竹,2个爆竹开始测试,直到邮箱被炸毁。在最坏的情况下,邮箱直到被塞满也不会被炸毁,那就需要1+2+3+...+m=m*(m+1)/2个爆竹。如果m=100,这意味着需要5000个以上的爆竹!”“那也太多了。”他回答道:“如果我给你k=1个以上的邮箱呢?你能找到一种需要较少的爆竹的策略吗?”
你能吗?你需要向他要求提供的最少的爆竹数是多少?
你可以假设如下事实成立:
1、如果一个邮箱可以承受x个爆竹的同时爆炸,那么它一定能承受x-1个爆竹的同时爆炸。
2、经过一次爆炸,一个邮箱要么就是被炸毁,要么就是完好无损,可以像新的邮箱一样继续用于测试。
注:如果邮箱在装满爆竹时仍不会被炸毁,制造商将很满足于这个结果。但如果不是那样,他希望找出邮箱的最大承受能力。
输入规约:
每个输入文件第一行是单个整数N(1<=N<=10),表示测试用例的个数。后面每个测试用例占一行,包含两个整数,k和m,中间用单个空格符分隔。
输出规约:
每个测试用例的结果占一行,包含单个整数,表示在最坏的情况下,为了找出邮箱的最大承受能力,需要的爆竹数。
范例输入:
4
1 10
1 100
3 73
5 100

范例输出:
55
5050
382
495
分享 转发
KEYFC第二届版杀 - 川澄 舞
TOP