你有两个 CPU,n个程序(m个类型)要运行。
在不同条件下程序运行的时间不同,但连续运行的时间满足小于等于在不连续状态下运行的时间。
#include <iostream> #include <cstring> #include <queue> using namespace std; const int N =5002; #define int long long #define inf 1e17 int n,K,c[N],a[N],b[N]; int f[N][N] ; void sov(){ int i,j; cin>>n>>K; for(i=1;i<=n;i++) cin>>c[i]; for(i=1;i<=K;i++) cin>>b[i]; for(i=1;i<=K;i++) cin>>a[i]; for(i=0;i<=n;i++) for(j=0;j<=K;j++) f[i][j]=inf; f[1][0]=b[c[1]]; for(i=2;i<=n;++i){ int t=c[i-1]; for(j=0;j<=K;j++){ f[i][j]=min(f[i][j],f[i-1][j]+ (c[i]==t?a[c[i]]:b[c[i]])); f[i][t]=min(f[i][t],f[i-1][j]+ (c[i]==j?a[c[i]]:b[c[i]])); } } int ans=inf; for(j=0;j<=K;j++) ans=min(ans,f[n][j]); cout<<ans<<endl; } signed main(){ int tes; cin>>tes; while(tes--) sov(); }
标签:tes,int,Up,long,CF1799,Start,Hot,include From: https://www.cnblogs.com/towboa/p/17286271.html