CF1799D1 Hot Start Up (easy version)

张开发
2026/4/15 3:21:14 15 分钟阅读

分享文章

CF1799D1 Hot Start Up (easy version)
抽风让我们来写动态规划啦啦啦啦啦啦啦思路做法考虑设表示处理到第个程序一个最后处理的是程序一个处理的是。状态转移在下面。做法处理了第个程序所以或者一定有一个会是。所以我们优化为表示处到第个程序一个最后处理的是程序一个处理的是。如果合法那么同理代码#includebits/stdc.h using namespace std; #define int long long const int N5e35; int T,n,k,a[N],dp[N][N];//设dp[i][j]表示处理到第i个程序,一个CPU处理的是i一个是j。 struct node{ int cold,hot; }; node b[N]; signed main(){ scanf(%lld,T); while(T--){ scanf(%lld%lld,n,k); for(int i1;in;i){ scanf(%lld,a[i]); } for(int i1;ik;i){ scanf(%lld,b[i].cold); } for(int i1;ik;i){ scanf(%lld,b[i].hot); } for(int i0;in;i){ for(int j0;jk;j){ dp[i][j]LLONG_MAX; } } dp[0][0]0; for(int i0;in;i){ for(int j0;jk;j){ if(dp[i][j]LLONG_MAX){ dp[i1][j]min(dp[i1][j],dp[i][j]((a[i1]a[i]) ? b[a[i1]].hot : b[a[i1]].cold)); dp[i1][a[i]]min(dp[i1][a[i]],dp[i][j]((a[i1]j) ? b[a[i1]].hot : b[a[i1]].cold)); } } } int ansLLONG_MAX; for(int i0;ik;i) ansmin(ans,dp[n][i]); printf(%lld\n,ans); } return ~(-1); }

更多文章