这个题是个经典的贪心题。
枚举走过的湖的个数x,最终将在湖x停下来,那么在走路上消耗的时间可以算出来t[1]+t[2]+...+t[n-1],在这个前提下,我们可以从一个湖瞬移到另外一个湖(这个是关键!!!)。为了掉的更多的鱼,我们每次都选择瞬移到与最多的湖去钓5分钟(可以通过优先队列来实现),这样得到的鱼肯定是最多的。

我做这个题一开始WA了N次,有下面2点必须要注意:
1)对于进入优先队列的比较操作,除了要比较湖中鱼的多少外,当鱼的数量相同时,要优先选择靠前的湖。
2)要考虑到有剩余时间不能用的情况,即鱼都钓完了,但是还有时间,这是要将剩余的时间都加到1号湖中。
3)最优时间的初始值不要设为0,因为最优值可能是0,这样的话最优钓鱼的方案得不到更新。

my code:
zju 1161 Gone Fishing#include <iostream>
zju 1161 Gone Fishing#include 
<queue>
zju 1161 Gone Fishing
using namespace std;
zju 1161 Gone Fishing

相关文章: