BZOJ1084 SCOI2005最大子矩阵
考虑DP
f[i][j][k]表示一行到i一行到j共取k块最大值,类似于最长公共子序列n^2那种
注意相等时可以一起拿
By:大奕哥
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,K,g[105][105][15],f[105][105],s[105][105],x; 4 int main() 5 { 6 scanf("%d%d%d",&n,&m,&K); 7 for(int i=1;i<=n;++i) 8 for(int j=1;j<=m;++j) 9 { 10 scanf("%d",&x); 11 s[i][j]=s[i-1][j]+x; 12 } 13 if(m==1) 14 { 15 memset(f,-0x3f,sizeof(f)); 16 for(int i=1;i<=n;++i)f[i][0]=0; 17 for(int i=1;i<=n;++i) 18 { 19 for(int k=1;k<=K;++k) 20 { 21 f[i][k]=max(f[i][k],f[i-1][k]); 22 for(int j=0;j<i;++j) 23 f[i][k]=max(f[i][k],f[j][k-1]+s[i][1]-s[j][1]); 24 } 25 } 26 printf("%d\n",f[n][K]); 27 } 28 else 29 { 30 memset(g,-0x3f,sizeof(g)); 31 for(int i=1;i<=n;++i) 32 for(int j=1;j<=n;++j) 33 g[i][j][0]=0; 34 for(int i=1;i<=n;++i) 35 for(int j=1;j<=n;++j) 36 { 37 for(int k=1;k<=K;++k) 38 { 39 g[i][j][k]=max(g[i-1][j][k],g[i][j-1][k]); 40 for(int p=0;p<i;++p)g[i][j][k]=max(g[i][j][k],g[p][j][k-1]+s[i][1]-s[p][1]); 41 for(int p=0;p<j;++p)g[i][j][k]=max(g[i][j][k],g[i][p][k-1]+s[j][2]-s[p][2]); 42 if(i==j) 43 for(int p=0;p<i;++p) 44 g[i][j][k]=max(g[i][j][k],g[p][p][k-1]+s[i][1]+s[i][2]-s[p][1]-s[p][2]); 45 } 46 } 47 printf("%d\n",g[n][n][K]); 48 } 49 return 0; 50 }
转载于:https://www.cnblogs.com/nbwzyzngyl/p/8361409.html
BZOJ1084 SCOI2005最大子矩阵相关推荐
- BZOJ1084 [SCOI2005]最大子矩阵 动态规划
欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1084 题意概括 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注 ...
- bzoj1084: [SCOI2005]最大子矩阵
dp.转移方程在代码里.. 转载于:https://www.cnblogs.com/invoid/p/5451202.html
- bzoj1084 [SCOI2005]最大子矩阵 dp
首先题目是要选几个连续的矩阵,有关连续类的问题是可以最优值直接在相邻两行转移的 而且题目中m<=2是非常方便的条件,分类讨论就可以了 注: 0 0也要转移 码: #include<iost ...
- BZOJ 1084: [SCOI2005]最大子矩阵【DP】
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MB Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得 ...
- P2331 [SCOI2005]最大子矩阵 题解
DP 题,好像有点恶心,主要是因为能不能选空矩阵的问题. 有些数据好像是可以选空矩阵的有些又不能选,就很离谱,但是根据原数据来看空矩阵应该是不能选的,我也不知道具体情况() 注意到 m=1m=1m=1 ...
- [T][3]洛谷 P2331 [SCOI2005] 最大子矩阵
题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
- 洛谷 P2331 [SCOI2005]最大子矩阵
PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P2331 [SCOI2005]最大子矩阵 题目 题目描述 这里有一个 n*m 的矩阵,请你选出其中 k 个子矩阵,使得这个 k 个子 ...
- P2331 [SCOI2005]最大子矩阵(DP分类讨论)
P2331 [SCOI2005]最大子矩阵(DP&分类讨论) 考虑dp解决. 若m=1m=1m=1则是一个简单的递推. 若m=2m=2m=2则是分情况讨论. 一个是当前行不取. 一个是选第一列 ...
- BZOJ1084洛谷P2331 [SCOI2005]最大子矩阵
DP+思维 思路 这道题的切入点是mmm,发现mmm只有两种取值,那么我们就可以尝试对mmm分类讨论 m=1 发现在m=1m=1m=1时就是在一个一维序列上做k个最大子段和,我们定义f[i][j]f[ ...
最新文章
- java语言程序设计期末复习综合练习题_Java语言程序设计期末复习综合练习题答案...
- 如果孩子想学编程,你会推荐哪个? | 每日趣闻
- Oracle SQL Optimizer IN VS Exists Again
- os_mem.c(全)
- 如何理解指向指针的指针?
- MySQL 联合索引测试2
- 最大连续子数组和求解问题
- 3 个 Zabbix常见问题的处理方法
- 【数据库课程设计】金融数据库设计与实现
- k8s部署应用nginx
- 回顾2020年(1)
- A星寻路 A星算法优化
- python正则取反,一文搞定Python正则表达式
- 转载:js技巧收集(200多个)
- 功能对等四个原则_“功能对等”翻译理论--------奈达翻译理论体系的核心
- ssssssssss
- 括号匹配问题(数据结构)
- Qt扫盲- QTcpSocket 理论总结
- New eBooks Available for Subscribers
- iOS15.2 注册相册变化通知未给相册权限导致崩溃 [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]
热门文章
- AtCoder Grand Contest 002 (AGC002) F - Leftmost Ball 动态规划 排列组合
- 4-20模块 序列化模块 hashlib模块
- WPF MVVM模式下的无阻塞刷新
- React入门---事件与数据的双向绑定-9
- lt;二gt;读lt;lt;大话设计模式gt;gt;之策略模式
- Java学习笔记之:Java JDBC
- 真正理解、区分Action,Service和Dao功能
- Java 输入 输出
- leetcode算法题--数组中出现次数超过一半的数字
- 20165303实验一 Java开发环境的熟悉