全部评论 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
暂无数据

提交答案之后,这里将显示提交结果~

首页