pku acm 1042 Gone Fishing

来源:互联网 发布:地球联合理事会 知乎 编辑:程序博客网 时间:2024/05/17 22:19

原题链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1042

题目大概意思如下:

john去某湖泊钓鱼。他有1到16个小时的整数时间用来钓鱼,湖泊的数量为2到25。john必须从湖泊1开始选择钓鱼,

同时他可以选择从在任何一个湖泊钓鱼。同时呢,他只能从编号小的湖泊往编号大的湖泊前进,也就是说,如果他现在正在3号

湖泊钓鱼,那么他就不能再去1号和2号湖泊钓了。同时,从第i个湖泊到第i+1个湖泊要ti时间的路程。在第i个湖泊边钓鱼,第一

个5分钟可以钓鱼K条,以后再钓鱼5分钟,鱼量减小P。注意这5分钟为最小时间单位

输入的第一行为湖泊的数量n

第二行为钓鱼的可用时间数,以小时记

第三行为n个整数,表示第i个湖泊第一个5分钟的钓鱼数量

第四行为n个整数,表示第i个湖泊再钓鱼5分钟的鱼量减小值p

第五行为n-1个整数,表示从第i个湖泊到第i+1个湖泊所需要的时间数(以5分钟为单位)

如果是4,表示需要20分钟

输入以0表示结束

输出john在每个湖泊的停留时间数以及可能钓到的最大数量的鱼

注意如果存在相同的最优解,那么要选择序号小的湖泊停留时间相对长的那个

主要思想枚举+贪心

从第一个湖泊开始,依次枚举从1到i的湖泊,

从总的时间里把从1到i号湖泊路程上所用的时间减去,

然后对这些湖泊采用贪心原则,每次选择鱼量最多的湖泊开始钓

如果半路发现所有的湖泊已经没有鱼,但是时间还没有用完,那么把剩余的时间加到第一个湖泊上就行了

我搞了几个wrong answer就是因为这个没有ac

上java代码:

原创粉丝点击