bzoj1084: [SCOI2005]最大子矩陣(Dp)
題目傳送門
。
解法:
有點噁心啊。
一開始狀態表示錯想半天想不出。
%了下題解發現原來這樣表示狀態就可以了。
一列的很好解決。
兩列的就s[i][j][k]表示第一列取到第i個,第二列取到第j個,一共k個子矩陣的最大分值。
然後四種狀態轉移。
這個位置可以不選:s[i][j][t]=max(s[i-1][j][t],s[i][j-1][t]);
然後第一列和第二列分別往前移一段。
很好轉移。
如果i==j的話表示選到同一個位置了那麼我們可以一起往前弄矩陣。
詳情看程式碼。
程式碼實現:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int a[3][110],sum[3][110],f[110][15];
int s[110][110][15];
int main() {
int n,m,K;scanf("%d%d%d",&n,&m,&K);
for(int j=1;j<=n;j++)for(int i=1;i<=m;i++)scanf("%d",&a[i][j]);swap(n,m);
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)sum[i][j]=sum[i][j-1]+a[i][j];
if(n==1) {
for(int j=1;j<=m;j++)for(int t=1;t<=K;t++) {
f[j][t]=f[j-1][t];
for(int k=0;k<j;k++)f[j][t]=max(f[j][t],f[k][t-1]+sum[1][j]-sum[1][k]);
}printf("%d\n",f[m][K]);
}else {
for(int i=1;i<=m;i++)for(int j=1;j<=m;j++)for(int t=1;t<=K;t++) {
s[i][j][t]=max(s[i-1][j][t],s[i][j-1][t]);
for(int k=0;k<i;k++)s[i][j][t]=max(s[i][j][t],s[k][j][t-1]+sum[1][i]-sum[1][k]);
for(int k=0;k<j;k++)s[i][j][t]=max(s[i][j][t],s[i][k][t-1]+sum[2][j]-sum[2][k]);
if(i==j)for(int k=0;k<i;k++)s[i][j][t]=max(s[i][j][t],s[k][k][t-1]+sum[1][i]-sum[1][k]+sum[2][j]-sum[2][k]);
}printf("%d\n",s[m][m][K]);
}
return 0;
}
相關文章
- 最大子矩陣和矩陣
- openjudge1768 最大子矩陣[二維字首和or遞推|DP]矩陣
- 【DP】乘積最大子陣列陣列
- #1502 : 最大子矩陣矩陣
- 最大子陣——動態規劃DP動態規劃
- 最大子段和 | 最大子矩陣 | 最大M子段和矩陣
- 序列(dp+矩陣加速)矩陣
- poj1050 最大子矩陣和矩陣
- POJ 1050-To the Max(最大子矩陣和)矩陣
- 演算法之DP——01矩陣演算法矩陣
- POJ 3744 概率dp+矩陣矩陣
- 巨大的數(dp+矩陣加速)矩陣
- 幸運數(dp+矩陣加速)矩陣
- 動態dp & 矩陣加速遞推矩陣
- 動態規劃-最大子矩陣和(ZOJ 1074 TO THE MAX )動態規劃矩陣
- CF22B 最大子矩陣問題簡單版矩陣
- BZOJ 3329 Xorequ:數位dp + 矩陣快速冪矩陣
- hdu4328 最大子矩陣問題O(n*m)掃描思想矩陣
- 第四章:多維陣列和矩陣 ------------- 4.4 找出邊界為1的最大子方陣陣列矩陣
- NOIP2014pj子矩陣[搜尋|DP]矩陣
- POJ3744 Scout YYF I (概率DP + 矩陣優化)矩陣優化
- 生成螺旋矩陣(方陣、矩陣)矩陣
- 鄰接矩陣、度矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- HDU3519Lucky Coins Sequence(DP+矩陣加速)矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 矩陣矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 3D圖形:矩陣的行列式,矩陣的逆、正交矩陣、齊次矩陣3D矩陣
- 矩陣中最大的二維矩陣矩陣
- 求任意矩陣的伴隨矩陣矩陣
- 53. 最大子陣列和陣列
- BZOJ3329: Xorequ(二進位制數位dp 矩陣快速冪)矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 矩陣和陣列矩陣陣列
- 陣列1——求一個陣列的最大子陣列陣列
- 理解矩陣矩陣
- 矩陣相乘矩陣