CF2128A.Recycling Center
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在回收中心,有 n 个垃圾袋,第 i 个垃圾袋的重量为 ai。每一秒钟,会依次发生以下两个操作:
- 首先,你必须选择一个垃圾袋并销毁它。如果该垃圾袋的重量严格大于 c,则需要花费 1 个硬币,否则不需要花费硬币。
- 然后,剩余每个垃圾袋的重量都会变为原来的两倍。
你需要花费的最少硬币数是多少,才能销毁所有垃圾袋?
输入格式
每个测试点包含多组测试数据。第一行包含测试用例数 t(1≤t≤1000)。接下来是每组测试数据的描述。
每组测试数据的第一行包含两个整数 n 和 c(1≤n≤30,1≤c≤109)。
每组测试数据的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示每个垃圾袋的重量。
输出格式
对于每组测试数据,输出一个整数,表示销毁所有垃圾袋所需的最少硬币数。
输入输出样例
输入#1
4 5 10 10 4 15 1 8 3 42 1000000000 1000000000 1000000000 10 30 29 25 2 12 15 42 14 6 16 9 10 1000000 1 1 1 1 1 1 1 1 1 864026633
输出#1
2 3 6 1
说明/提示
在下面的解释中:
- 蓝色数字表示被免费销毁的垃圾袋,
- 红色数字表示被花费 1 个硬币销毁的垃圾袋,
- 黑色数字表示尚未被销毁的垃圾袋。
对于第一个测试用例,一种方案如下:
- [10,4,15,1,8]
- [10,8,30,2,16],10 被免费销毁,因为 10≤10。
- [10,8,60,4,32],8 被免费销毁,因为 8≤10。
- [10,8,120,8,32],32 被花费 1 个硬币销毁,因为 32>10。
- [10,8,240,8,32],8 被免费销毁,因为 8≤10。
- [10,8,240,8,32],240 被花费 1 个硬币销毁,因为 240>10。
总共花费了 2 个硬币,并且可以证明这是最优的。
对于第二个测试用例,一种方案如下:
- [1000000000,1000000000,1000000000]
- [1000000000,2000000000,2000000000],1000000000 被花费 1 个硬币销毁,因为 1000000000>42。
- [1000000000,2000000000,4000000000],2000000000 被花费 1 个硬币销毁,因为 2000000000>42。
- [1000000000,2000000000,4000000000],4000000000 被花费 1 个硬币销毁,因为 4000000000>42。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?