正解
2025-08-20 20:14:54
发布于:浙江
13阅读
0回复
0点赞
int people=2;
people++;
全部评论 1
#include <bits/stdc++.h> using namespace std; const int N=1e6+10; long long n,t,a[N],dp[N],_[N],cnt; int main(){ cin>>n>>t; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++){ long long x,y; cin>>x>>y; cnt+=y;//sb小枫 if(y>x){ _[a[i]]=max(y-x,_[a[i]]); } }for(int i=1;i<=n;i++){ dp[i]=dp[i-1]; if(i>=t) dp[i]=max(dp[i],dp[i-t]+_[i+1-t]); //dp[i]=到第i个选择能少花的钱 }for(int i=1;i<=n;i++) ; cout<<cnt-dp[n];//宰了小枫 return 0; }
2025-09-19 来自 浙江
0
有帮助,赞一个