BZOJ 1084 [SCOI2005]最大子矩阵 - 动态规划
题目大意:
从矩阵中取出k个互不重叠的子矩阵,求最大的和。
题目分析:
对于m=1,直接最大m子段和。
对于m=2:
\(dp[i][j][k]\)表示扫描到第一列i和第2列j时选取了k个矩阵的答案。
有3中转移:第一列取一段,第二列取一段,两列一起取一个宽度为2的矩阵。
\]
code
#include<bits/stdc++.h>
using namespace std;
const int N = 105;
int n, m, k, dp2[N][N][15], matrix[N][10], sum[5][N], dp1[N][15];
inline void solve2(){
memset(dp2, -0x3f3f3f3f, sizeof dp2);
for(int i = 0; i <= n; i++)
for(int j = 0; j <= n; j++)
dp2[i][j][0] = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++){
for(int l = 1; l <= k; l++){
dp2[i][j][l] = max(dp2[i][j - 1][l], dp2[i - 1][j][l]);
for(int p = 0; p <= i - 1; p++)
dp2[i][j][l] = max(dp2[i][j][l], dp2[p][j][l - 1] + sum[1][i] - sum[1][p]);
for(int p = 0; p <= j - 1; p++)
dp2[i][j][l] = max(dp2[i][j][l], dp2[i][p][l - 1] + sum[2][j] - sum[2][p]);
if(i == j){
for(int p = 0; p <= i - 1; p++)
dp2[i][j][l] = max(dp2[i][j][l], dp2[p][p][l - 1] + sum[1][i] - sum[1][p] + sum[2][i] - sum[2][p]);
}
}
}
cout<<dp2[n][n][k];
}
inline void solve1(){
memset(dp1, -0x3f3f3f3f, sizeof dp1);
for(int i = 0; i <= n; i++) dp1[i][0] = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= k; j++){
dp1[i][j] = dp1[i - 1][j];
for(int p = 0; p <= i - 1; p++)
dp1[i][j] = max(dp1[i][j], dp1[p][j - 1] + sum[1][i] - sum[1][p]);
}
cout<<dp1[n][k]<<endl;
}
int main(){
scanf("%d%d%d", &n, &m, &k);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++)
scanf("%d", &matrix[i][j]);
sum[1][i] = sum[1][i - 1] + matrix[i][1];
sum[2][i] = sum[2][i - 1] + matrix[i][2];
}
// for(int i = 1; i <= n; i++) cout<<sum[1][i]<<" "<<sum[2][i]<<endl;
if(m == 1) solve1();
else if(m == 2) solve2();
return 0;
}
BZOJ 1084 [SCOI2005]最大子矩阵 - 动态规划的更多相关文章
- BZOJ 1084: [SCOI2005]最大子矩阵 DP
1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...
- [BZOJ 1084] [SCOI2005] 最大子矩阵 【DP】
题目链接:BZOJ - 1084 题目分析 我看的是神犇BLADEVIL的题解. 1)对于 m = 1 的情况, 首先可能不取 Map[i][1],先 f[i][k] = f[i - 1][k]; ...
- BZOJ: 1084: [SCOI2005]最大子矩阵
NICE 的DP 题,明白了题解真是不错. Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1228 Solved: 622[Submit][Stat ...
- bzoj 1084: [SCOI2005]最大子矩阵【dp】
分情况讨论,m=1的时候比较简单,设f[i][j]为到i选了j个矩形,前缀和转移一下就行了 m=2,设f[i][j][k]为1行前i个,2行前j个,一共选了k个,i!=j的时候各自转移同m=1,否则转 ...
- 【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)
1084: [SCOI2005]最大子矩阵 Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第 ...
- BZOJ(6) 1084: [SCOI2005]最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3566 Solved: 1785[Submit][Sta ...
- 1084: [SCOI2005]最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1325 Solved: 670[Submit][Stat ...
- 【BZOJ】1084: [SCOI2005]最大子矩阵(DP)
http://www.lydsy.com/JudgeOnline/problem.php?id=1084 有一个1A--- 本题没看懂,,不会啊囧..感觉完全设不了状态..看了题解,囧,m<=2 ...
- 1084: [SCOI2005]最大子矩阵 - BZOJ
Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
随机推荐
- Nginx配置GZIP
记录一次解决网站加载慢的问题 一. nginx配置 gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;g ...
- 比較C++和Java 二
26.Java内置多线程支持.你能够通过继承Thread类来创建一个新的线程(重写run()方法).相互排斥发生在使用synchronized关键字作为类型修饰符修饰方法的对象级别. 在任一时刻,仅仅 ...
- js进阶 13-9/10 jquery如何实现三级列表
js进阶 13-9/10 jquery如何实现三级列表 一.总结 一句话总结:用的是定位,父标签相对定位,子标签就可以绝对定位了,绝对定位的孩子还是可以设置绝对定位.用toggle设置子菜单显示和隐藏 ...
- docker中发布springboot
http://note.youdao.com/noteshare?id=81a603b1b33731aaef7b7755c70f33fb
- 代码高亮显示——google-code-prettify
先放着,搭建完HEXO博客再来写这篇. https://code.google.com/archive/p/google-code-prettify/
- 【例题 4-1 UVA - 1339】 Ancient Cipher
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 位置其实都没关系了. 只要每个字母都有对应的字母,它们的数量相同就可以了. 求出每种字母的数量. 排序之后. 肯定是要一一对应的. ...
- php杂项函数
php杂项函数 一.总结 看着函说作用 函数 描述 PHP constant() 返回一个常量的值. 4 define() 定义一个常量. 3 defined() 检查某常量是否存在. 3 d ...
- FZU 2020 组合
组合数求模要用逆元,用到了扩展的欧几里得算法. #include<cstdio> int mod; typedef long long LL; void gcd(LL a,LL b,LL ...
- 9.2 Binder系统_驱动情景分析_服务注册过程
1. 几个重要结构体的引入给test_server添加一个goodbye服务, 由此引入以下概念: 进程间通信其实质也是需要三要素:源.目的.数据,源是自己,目的用handle表示:通讯的过程是源向实 ...
- UTC、GTC时间和本地时间(Linux默认使用UTC时间,要修改一下)
1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/r ...