bzoj1084: [SCOI2005]最大子矩阵
来源:互联网 发布:java和scala 编辑:程序博客网 时间:2024/05/22 03:33
题解
虽然是
注意到
当
当
转移可以预处理最大连续子段和。
题外话
4 2 84 23 -2-1 -55 4
这组数据会把网上的大部分题解卡掉
代码
//动态规划#include <cstdio>#include <algorithm>#define maxn 110#define inf 0x3f3f3f3fusing namespace std;int f[maxn][maxn][15], g[maxn][15], a[maxn][maxn], b[maxn][maxn], c[maxn][maxn], N, K, M, w[maxn][maxn];int main(){ int i, j, k, ans=-inf, t; scanf("%d%d%d",&N,&M,&K); for(i=1;i<=N;i++)for(j=1;j<=M;j++)scanf("%d",&w[j][i]); for(i=1;i<=N;i++)for(j=i;j<=N;j++)a[i][j]=max(a[i][j-1],0)+w[1][j]; for(i=1;i<=N;i++)for(j=i;j<=N;j++)b[i][j]=max(b[i][j-1],0)+w[2][j]; for(i=1;i<=N;i++)for(j=i;j<=N;j++)c[i][j]=max(0,c[i][j-1])+w[1][j]+w[2][j]; if(M==1) { for(i=1;i<=K;i++)g[0][i]=-inf; for(i=1;i<=N;i++) for(k=1;k<=K;k++) { g[i][k]=-inf; for(j=0;j<i;j++)g[i][k]=max(g[i][k],g[j][k-1]+a[j+1][i]); } for(i=1;i<=N;i++)ans=max(ans,g[i][K]); } if(M==2) { for(i=0;i<=N;i++)for(j=1;j<=K;j++)f[i][0][j]=f[0][i][j]=-inf; for(i=0;i<=N;i++) for(j=0;j<=N;j++) for(k=1;k<=K;k++) { if(i)f[i][j][k]=max(f[i][j][k],f[i-1][j][k]); if(j)f[i][j][k]=max(f[i][j][k],f[i][j-1][k]); if(i==j) for(t=0;t<i;t++) f[i][i][k]=max(f[i][i][k],f[t][t][k-1]+c[t+1][i]); for(t=0;t<i;t++)f[i][j][k]=max(f[i][j][k],f[t][j][k-1]+a[t+1][i]); for(t=0;t<j;t++)f[i][j][k]=max(f[i][j][k],f[i][t][k-1]+b[t+1][j]); for(t=0;t<min(i,j);t++)f[i][j][k]=max(f[i][j][k],f[t][t][k-1]); ans=max(ans,f[i][j][k]); } ans=f[N][N][K]; } printf("%d\n",ans); return 0;}
0 0
- 【BZOJ1084 || SCOI2005】最大子矩阵
- [BZOJ1084] [SCOI2005]最大子矩阵
- bzoj1084[SCOI2005]最大子矩阵
- bzoj1084【SCOI2005】最大子矩阵
- 【bzoj1084】[SCOI2005]最大子矩阵
- BZOJ1084: [SCOI2005]最大子矩阵
- 【bzoj1084】 [SCOI2005]最大子矩阵
- bzoj1084: [SCOI2005]最大子矩阵
- bzoj1084: [SCOI2005]最大子矩阵
- BZOJ1084 [SCOI2005]最大子矩阵
- 【BZOJ1084】【SCOI2005】最大子矩阵 傻动规
- [BZOJ1084]SCOI2005最大子矩阵|DP
- bzoj1084: [SCOI2005]最大子矩阵-DP
- 【bzoj1084】【scoi2005】【最大子矩阵】【dp】
- 【BZOJ1084】[SCOI2005]最大子矩阵【DP】
- BZOJ1084: [SCOI2005]最大子矩阵 DP
- 【bzoj1084】【洛谷P2331】 【SCOI2005】 最大子矩阵
- [BZOJ1084][SCOI2005]最大子矩阵(dp)
- 收集service源码分析文章
- 1074: 人见人爱A+B
- 字符编码笔记:ASCII,Unicode和UTF-8
- python-23-读写excel文件
- SharePreference 跨进程使用测试
- bzoj1084: [SCOI2005]最大子矩阵
- SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
- c++数据结构 共享栈的实现
- centos yum -y mysql-server找不到源
- win10系统崩溃经验汇总
- 代码
- POJ
- python-24-如何派生类内置不可变类型并修改其实例化行为?如何为创建大量实例节省内存?
- java中的sleep()和wait()的区别