贪心(ZOJ 3778,Talented Chef)
2017-04-24 15:59
204 查看
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3778
给你n道菜,第i道菜需要a[i]步才能完成,厨师每次最多可以取m道不同的菜,各完成1步,问最少要多少次才能完成。
答案:
设a=max(a[i]),1<=i<=n。即完成某道菜最多需要的步数。
b=((∑a[i])-1)/m+1。步数和除以m,向上取整。
答案就是max(a,b)。
证明:
如果除了最后一次,每次都能取m道不同的菜,那答案就是b。
否则,肯定存在某一次,剩下的菜少于m道,而且不能一次完成。
因为菜与菜之间唯一的区别就是剩下的步数,所以我们每次取剩下的步数最多的m道菜来制作一定是最优解。
如果哪怕是这样做,依然遇上了没菜做的情况,那么说明我们之前每次肯定都取了最多步数的那道菜。更重要的是我们以后也依然会是这样,所以答案就是a。
因为答案必是a,b之一而且两者又刚好都是一个下限,所以取最大值就是最终答案。
思路:
ACM这种东西以AC为准,就算不能给出严格证明,也可以猜一猜。
给你n道菜,第i道菜需要a[i]步才能完成,厨师每次最多可以取m道不同的菜,各完成1步,问最少要多少次才能完成。
答案:
设a=max(a[i]),1<=i<=n。即完成某道菜最多需要的步数。
b=((∑a[i])-1)/m+1。步数和除以m,向上取整。
答案就是max(a,b)。
证明:
如果除了最后一次,每次都能取m道不同的菜,那答案就是b。
否则,肯定存在某一次,剩下的菜少于m道,而且不能一次完成。
因为菜与菜之间唯一的区别就是剩下的步数,所以我们每次取剩下的步数最多的m道菜来制作一定是最优解。
如果哪怕是这样做,依然遇上了没菜做的情况,那么说明我们之前每次肯定都取了最多步数的那道菜。更重要的是我们以后也依然会是这样,所以答案就是a。
因为答案必是a,b之一而且两者又刚好都是一个下限,所以取最大值就是最终答案。
思路:
ACM这种东西以AC为准,就算不能给出严格证明,也可以猜一猜。
相关文章推荐
- ZOJ-3778-Talented Chef【11th浙江省赛】【贪心】
- ZOJ 3778 Talented Chef (贪心)
- ZOJ 3778 Talented Chef (贪心+二分)
- zoj 3778 Talented Chef 贪心
- ZOJ - 3778 Talented Chef【贪心】
- ZOJ 3778 Talented Chef【贪心】
- ZOJ 3778 Talented Chef-二分/规律
- ZOJ 3778 Talented Chef(找规律,模拟计算,11届ACM省赛,简单)
- ZOJ 3778 Talented Chef 模拟 [ 祝愿明天省赛一帆风顺, ZJSU_Bloom WILL WIN : )
- ZOJ 3778 Talented Chef
- Talented Chef ZOJ - 3778
- zoj 3778 Talented Chef
- ZOJ Problem Set - 3778【Talented Chef】
- ZOJ 3778 Talented Chef(数学啊 )
- ZOJ 3778 Talented Chef(计算器模拟)
- zoj 3778 Talented Chef (思维)
- zoj 3778 Talented Chef(思维题)
- ZOJ 3778 Talented Chef
- ZOJ--3778--Talented Chef--数学智力题
- ZOJ 3778 11th省赛 C Talented Chef