1 条题解

  • 0
    @ 2026-10-25 18:43:51

    思路

    枚举最远到达鱼塘扣单向路程,逐分钟取当前最大收益,鱼耗尽收益为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

    信息

    ID
    1404
    时间
    1000ms
    内存
    64MiB
    难度
    普及
    标签
    递交数
    1
    已通过
    1
    上传者