博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1084. [SCOI2005]最大子矩阵【网格DP】
阅读量:5887 次
发布时间:2019-06-19

本文共 1824 字,大约阅读时间需要 6 分钟。

Description

  这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵

不能相互重叠。

Input

  第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的

分值的绝对值不超过32767)。

Output

  只有一行为k个子矩阵分值之和最大为多少。

Sample Input

3 2 2
1 -3
2 3
-2 3

Sample Output

9

果然DP还是需要多练……
f[i][j][p]保存当第i行为p状态时选了j个正方形的最大值
p=1这一行只选左边
p=2这一行只选右边
p=3这一行选两个(但两个为独立的)
p=4这一行选两个(两个并在一起)

 

1 #include
2 #include
3 using namespace std; 4 5 int max5(int a,int b,int c,int d,int e) 6 { 7 return max(max(a,b),max(max(c,d),e)); 8 } 9 int max3(int a,int b,int c)10 {11 return max(max(a,b),c);12 }13 int f[101][101][10],n,m,k,x,y,z;14 int main()15 {16 cin>>n>>m>>k;17 if (m==1)18 {19 for (int i=1;i<=n;++i)20 {21 cin>>x;22 for (int j=1;j<=k;++j)23 {24 f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1]);25 f[i][j][1]=max(f[i-1][j][1],f[i-1][j-1][0])+x;26 }27 }28 cout<
>x>>y;39 z=x+y;40 for (int j=1;j<=k;++j)41 {42 f[i][j][0]=max5(f[i-1][j][0],f[i-1][j][1],f[i-1][j][2],f[i-1][j][3],f[i-1][j][4]);43 f[i][j][1]=max5(f[i-1][j-1][0]+x,f[i-1][j][1]+x,f[i-1][j-1][2]+x,f[i-1][j][3]+x,f[i-1][j-1][4]+x);44 f[i][j][2]=max5(f[i-1][j-1][0]+y,f[i-1][j-1][1]+y,f[i-1][j][2]+y,f[i-1][j][3]+y,f[i-1][j-1][4]+y);45 f[i][j][3]=max3(f[i-1][j-1][1]+z,f[i-1][j-1][2]+z,f[i-1][j][3]+z);46 if (j>=2)f[i][j][3]=max3(f[i][j][3],f[i-1][j-2][0]+z,f[i-1][j-2][4]+z);47 f[i][j][4]=max5(f[i-1][j-1][0]+z,f[i-1][j-1][1]+z,f[i-1][j-1][2]+z,f[i-1][j-1][3]+z,f[i-1][j][4]+z);48 49 }50 }51 cout<

转载于:https://www.cnblogs.com/refun/p/8678600.html

你可能感兴趣的文章
移动端常见随屏幕滑动顶部固定导航栏背景色透明度变化简单jquery特效
查看>>
python基础---网络编程(socket编程)
查看>>
br-ex绑定的物理接口不能配置ip的原因
查看>>
centos6.x中fstab配置文件出错导致无法启动及忘记root密码解决方法
查看>>
Linux命令汇总
查看>>
C#静态类、静态构造函数,类与结构体的比较
查看>>
SVN+Gearman构建异步式代码分布系统
查看>>
在linux系统中I/O 调度算法
查看>>
mysql重要参数总结---不断更新中
查看>>
win10主机与域控制器失去信任,没有管理员权限
查看>>
Windows Server 2003 家族产品支持两种授权模式
查看>>
通用权限管理系统组件 中集成多系统的统一登录(数据库源码级)附源码
查看>>
redis启动流程介绍
查看>>
Ubuntu 下pdf文件,编辑软件 Master pdf editor
查看>>
git diff提示filemode发生改变
查看>>
Ibatis中进行批量操作
查看>>
我的友情链接
查看>>
常见网络数据包结构
查看>>
JSP中forward和redirect有什么区别? 什么时候必须用哪个?
查看>>
PAT (Advanced Level) Practice 1015 Reversible Primes
查看>>