1 条题解
-
0
思路
枚举最远到达鱼塘扣单向路程,逐分钟取当前最大收益,鱼耗尽收益为0。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){int n;cin>>n;vector<int>a(n),d(n),travel(n);for(int &x:a)cin>>x;for(int &x:d)cin>>x;for(int i=1;i<n;i++)cin>>travel[i];int t;cin>>t;long long best=0;int walk=0;for(int last=0;last<n;last++){walk+=travel[last];if(walk>t)break;priority_queue<pair<int,int>>q;for(int i=0;i<=last;i++)q.push({a[i],i});long long sum=0;for(int j=walk;j<t;j++){auto p=q.top();q.pop();sum+=p.first;q.push({max(0,p.first-d[p.second]),p.second});}best=max(best,sum);}cout<<best<<'\n';}
- 1