Lee • 2个月前
using namespace std; int c[1000001],v[1000001]; long long dp[1000001]; long long l[1000001]; long long sum[1000001]; int main(){
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>c[i];
}
for(int i=1;i<=n;i++){
cin>>v[i];
sum[i]=sum[i-1]+v[i];
}
memset(l,0x3f,sizeof l);
for(int i=1;i<=n;i++){
dp[i]=max(dp[i-1],sum[i]-l[c[i]]);
l[c[i]]=min(l[c[i]],sum[i-1]-dp[i-1]);
}
cout<<dp[n];
return 0;
}
评论:
请先登录,才能进行评论