[SCOI2005]最大子矩阵
2017-10-31 13:10
190 查看
题目描述
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。
输入输出格式
输入格式:第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767)。
输出格式:只有一行为k个子矩阵分值之和最大为多少。
输入输出样例
输入样例#1: 复制3 2 2 1 -3 2 3 -2 3输出样例#1: 复制
9
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long int #define max(a,b) ((a) > (b) ? (a) : (b)) #define REP(i,n) for (int i = 1; i <= (n); i++) #define fo(i,x,y) for (int i = (x); i <= (y); i++) #define Redge(u) for (int k = head[u]; k != -1; k = edge[k].next) using namespace std; const int maxn = 105,maxm = 15,INF = 1000000000; inline int read(){ int out = 0,flag = 1;char c = getchar(); while (c < 48 || c > 57) {if (c == '-') flag = -1; c = getchar();} while (c >= 48 && c <= 57) {out = out * 10 + c - 48; c = getchar();} return out * flag; } int A[maxn][3],n,m,K,f[maxn][maxm][5]; int main() { n = read(); m = read(); K = read(); REP(i,n) REP(j,m) A[i][j] = read(); for (int i = 1; i <= n; i++) for (int j = 1; j <= K; j++){ f[i][j][0] = max(max(max(f[i - 1][j][0],f[i - 1][j][1]),max(f[i - 1][j][2],f[i - 1][j][3])),f[i - 1][j][4]); f[i][j][1] = max(max(max(f[i - 1][j - 1][0],f[i - 1][j][1]),max(f[i - 1][j - 1][2],f[i - 1][j][3])),f[i - 1][j - 1][4]) + A[i][1]; f[i][j][2] = max(max(max(f[i - 1][j - 1][0],f[i - 1][j - 1][1]),max(f[i - 1][j][2],f[i - 1][j][3])),f[i - 1][j - 1][4]) + A[i][2]; if (j > 1) f[i][j][3] = max(max(max(f[i - 1][j - 2][0],f[i - 1][j - 1][1]),max(f[i - 1][j - 1][2],f[i - 1][j][3])),f[i - 1][j - 2][4]) + A[i][1] + A[i][2]; f[i][j][4] = max(max(max(f[i - 1][j - 1][0],f[i - 1][j - 1][1]),max(f[i - 1][j - 1][2],f[i - 1][j - 1][3])),f[i - 1][j][4]) + A[i][1] + A[i][2]; } int ans = max(max(max(f [K][0],f [K][1]),max(f [K][2],f [K][3])),f [K][4]); printf("%d\n",ans); return 0; }
相关文章推荐
- [bzoj1084][SCOI2005]最大子矩阵
- 【BZOJ 1084】 [SCOI2005]最大子矩阵(DP)
- 洛谷P2331 [SCOI2005]最大子矩阵(BZOJ1084)
- [SCOI2005]最大子矩阵
- [BZOJ1084] [SCOI2005]最大子矩阵
- 【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)
- BZOJ P1084[scoi2005]最大子矩阵
- BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)
- 【bzoj1084】【洛谷P2331】 【SCOI2005】 最大子矩阵
- bzoj1084【SCOI2005】最大子矩阵
- 【BZOJ 1084】[SCOI2005]最大子矩阵
- 【BZOJ】1084: [SCOI2005]最大子矩阵(DP)
- 【BZOJ1084】【杂题DP】[SCOI2005]最大子矩阵 题解
- [bzoj 1084--SCOI2005]最大子矩阵
- BZOJ1084 [SCOI2005] 最大子矩阵
- [SCOI2005] 最大子矩阵
- 【BZOJ1084 || SCOI2005】最大子矩阵
- [BZOJ1084][SCOI2005]最大子矩阵(dp)
- [SCOI2005]最大子矩阵
- bzoj 1084: [SCOI2005]最大子矩阵