Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
24589 岳亦铭 【BJ】T1 C++ 解答错误 35 85 MS 79012 KB 1000 2024-01-04 15:57:43

Tests(23/65):


#include <bits/stdc++.h> using namespace std; #define int long long const int maxn=2e3+10,maxa=5e3+10; int n,m; int a[maxn],b[maxn],val[maxn]; int f[maxa][maxn]; int cnt[maxa]; signed main() { ios::sync_with_stdio(false); cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) cin>>b[i]; for(int i=1;i<=n+m;i++) cin>>val[i]; for(int i=1;i<=n/2;i++) swap(a[i],a[n-i+1]),swap(b[i],b[n-i+1]); memset(f,-0x3f,sizeof(f)); for(int i=1;i<=m+10;i++) f[i][0]=0; for(int i=1;i<=n;i++) { cnt[a[i]]++; for(int j=n;j>=0;j--) { f[a[i]][j+1]=max(f[a[i]][j+1],f[a[i]][j]-b[i]+val[a[i]]); } for(int j=a[i]+10;j>=a[i];j--) { for(int k=0;k<n;k++) f[j+1][k/2]=max(f[j+1][k/2],f[j][k]+val[j+1]*(k/2)); } // cout<<i<<endl; // for(int j=1;j<=m+10;j++) // { // for(int k=0;k<n;k++) cout<<f[j][k]<<" "; // cout<<endl; // } } int ans=0; for(int i=m;i<=m+10;i++) ans=max(ans,max(f[i][0],f[i][1])); cout<<ans<<endl; return 0; }


测评信息: