BZOJ1084 SCOI2005最大子矩阵
考虑DP
f[i][j][k]表示一行到i一行到j共取k块最大值,类似于最长公共子序列n^2那种
注意相等时可以一起拿
By:大奕哥
#include<bits/stdc++.h>
using namespace std;
int n,m,K,g[][][],f[][],s[][],x;
int main()
{
scanf("%d%d%d",&n,&m,&K);
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
{
scanf("%d",&x);
s[i][j]=s[i-][j]+x;
}
if(m==)
{
memset(f,-0x3f,sizeof(f));
for(int i=;i<=n;++i)f[i][]=;
for(int i=;i<=n;++i)
{
for(int k=;k<=K;++k)
{
f[i][k]=max(f[i][k],f[i-][k]);
for(int j=;j<i;++j)
f[i][k]=max(f[i][k],f[j][k-]+s[i][]-s[j][]);
}
}
printf("%d\n",f[n][K]);
}
else
{
memset(g,-0x3f,sizeof(g));
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
g[i][j][]=;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
{
for(int k=;k<=K;++k)
{
g[i][j][k]=max(g[i-][j][k],g[i][j-][k]);
for(int p=;p<i;++p)g[i][j][k]=max(g[i][j][k],g[p][j][k-]+s[i][]-s[p][]);
for(int p=;p<j;++p)g[i][j][k]=max(g[i][j][k],g[i][p][k-]+s[j][]-s[p][]);
if(i==j)
for(int p=;p<i;++p)
g[i][j][k]=max(g[i][j][k],g[p][p][k-]+s[i][]+s[i][]-s[p][]-s[p][]);
}
}
printf("%d\n",g[n][n][K]);
}
return ;
}
BZOJ1084 SCOI2005最大子矩阵的更多相关文章
- [bzoj1084][SCOI2005]最大子矩阵_动态规划_伪·轮廓线dp
最大子矩阵 bzoj-1084 SCOI-2005 题目大意:给定一个n*m的矩阵,请你选出k个互不重叠的子矩阵使得它们的权值和最大. 注释:$1\le n \le 100$,$1\le m\le 2 ...
- bzoj千题计划198:bzoj1084: [SCOI2005]最大子矩阵
http://www.lydsy.com/JudgeOnline/problem.php?id=1084 m=1: dp[i][j] 前i个数,选了j个矩阵的最大和 第i个不选:由dp[i-1][j] ...
- BZOJ1084 [SCOI2005]最大子矩阵 动态规划
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1084 题意概括 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注 ...
- bzoj1084: [SCOI2005]最大子矩阵 dp
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表 ...
- bzoj1084: [SCOI2005]最大子矩阵
dp.状态转移方程在代码里 #include<cstdio> #include<algorithm> #include<cstring> using namespa ...
- bzoj1084 [SCOI2005]最大子矩阵——背包
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1084 水题...分类讨论一下即可. 代码如下: #include<iostream&g ...
- [bzoj1084][SCOI2005]最大子矩阵(DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1084 分析: m=1时:相当于只有一行数,让你取出p段,使得总和最大 明显可以DP,f ...
- 1084: [SCOI2005]最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1325 Solved: 670[Submit][Stat ...
- BZOJ 1084: [SCOI2005]最大子矩阵 DP
1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...
随机推荐
- spring 添加controller返回值绑定
@EnableWebMvc @Configuration public class Config { @Autowired private RequestMappingHandlerAdapter h ...
- 转:国内优秀npm镜像推荐及使用
原文:http://riny.net/2014/cnpm/ npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便 ...
- 2017ACM暑期多校联合训练 - Team 1 1003 HDU 6035 Colorful Tree (dfs)
题目链接 Problem Description There is a tree with n nodes, each of which has a type of color represented ...
- Spring Data JPA笔记
1. Spring Data JPA是什么 Spring Data JPA是Spring Data大家族中的一员,它对对持久层做了简化,用户只需要声明方法的接口,不需要实现该接口,Spring Dat ...
- C++ Boost库 uBLAS 笔记
构造 Vector #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/io.hpp> ...
- layui的模块化和非模块化使用
非模块化和模块化的区别是 非模块化不用每次都调用layui.use([],fun...)引入对应模块,引入的JS是/layui/layui.all.js 模块化必须每次都调用layui.use([], ...
- JS时间转换的一个坑位
在做项目的时候,无意发现了一个小东西. new Date('2018-05-15') new Date('2018-5-15') 输出的结果是不同的,相差了8小时.然后让我回忆到之前看的一个时间转换函 ...
- react native系列 - 从零开始构建
从零开始构建第一步,当然是从hello world开始,第一课我们没什么代码都不写,只用生成的代码来打包apk.为什么一开始就要学会打包,因为如果连打包都不会,以后做好了也没用.学会了打包,才能让我们 ...
- https、socket、http协议
一.https https 其实是由两部分组成:http+ssl(Secure Sockets Layer 安全套接层)/tls(Transport Layer Security 继任者安全传输层), ...
- linux下rz,sz安装
1.sz rz yum安装 yum install lrzsz