「Codeforces」598E (区间dp)
生活随笔
收集整理的這篇文章主要介紹了
「Codeforces」598E (区间dp)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:原題在這
有t組輸入,每次有n*m的巧克力,要吃k塊
只能整行切,代價是長度的平方
求最小代價
?
做法:(詳見行內注釋)
枚舉切幾塊和該情況下橫切還是縱切
特判:
切0塊、沒有巧克力、切一整塊
暴力五重循環233
?
代碼:
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define inf 99999999 using namespace std; int t,n,m,k; int dp[55][55][60];int main() {for(int i=0;i<=30;i++)for(int j=0;j<=30;j++)for(int k=0;k<=50;k++){dp[i][j][k]=inf;if(k==0||i*j==0||i*j==k) dp[i][j][k]=0;for(int c=0;c<=k;c++)//切幾塊 {for(int x=1;x<i;x++) //切豎行 {dp[i][j][k]=min(dp[i][j][k],dp[x][j][c]+dp[i-x][j][k-c]+j*j);}for(int y=1;y<j;y++) //切橫行 {dp[i][j][k]=min(dp[i][j][k],dp[i][y][c]+dp[i][j-y][k-c]+i*i);}}}cin>>t;for(int i=1;i<=t;i++) {cin>>n>>m>>k;cout<<dp[n][m][k]<<endl;}return 0; }?
轉載于:https://www.cnblogs.com/LocaEtric/p/9614915.html
總結
以上是生活随笔為你收集整理的「Codeforces」598E (区间dp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity 中让Text的文字动态刷新形
- 下一篇: 1088 三人行(20 分)