原题链接: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代码: