考虑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最大子矩阵的更多相关文章

  1. [bzoj1084][SCOI2005]最大子矩阵_动态规划_伪·轮廓线dp

    最大子矩阵 bzoj-1084 SCOI-2005 题目大意:给定一个n*m的矩阵,请你选出k个互不重叠的子矩阵使得它们的权值和最大. 注释:$1\le n \le 100$,$1\le m\le 2 ...

  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] ...

  3. BZOJ1084 [SCOI2005]最大子矩阵 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1084 题意概括 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注 ...

  4. bzoj1084: [SCOI2005]最大子矩阵 dp

    这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表 ...

  5. bzoj1084: [SCOI2005]最大子矩阵

    dp.状态转移方程在代码里 #include<cstdio> #include<algorithm> #include<cstring> using namespa ...

  6. bzoj1084 [SCOI2005]最大子矩阵——背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1084 水题...分类讨论一下即可. 代码如下: #include<iostream&g ...

  7. [bzoj1084][SCOI2005]最大子矩阵(DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1084 分析: m=1时:相当于只有一行数,让你取出p段,使得总和最大 明显可以DP,f ...

  8. 1084: [SCOI2005]最大子矩阵

    1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1325  Solved: 670[Submit][Stat ...

  9. BZOJ 1084: [SCOI2005]最大子矩阵 DP

    1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...

随机推荐

  1. CF 900B

    CF 900B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Descript ...

  2. 【leetcode 简单】 第五十三题 删除重复的电子邮箱

    编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个. +----+------------------+ | Id | Email | +-- ...

  3. HDU 2593 Pirates’ Code (STL容器)

    题目链接 Problem Description Davy Jones has captured another ship and is smiling contently under the sun ...

  4. 35、def func(a,b=[]) 这种写法有什么坑?

    那我们先通过程序看看这个函数有什么坑吧! def func(a,b=[]): b.append(a) print(b) func(1) func(1) func(1) func(1) 看下结果 [1] ...

  5. 【Tomcat】tomcat设置http文件下载,配置文件下载目录

    tomcat作为http的下载服务器,网上有很多办法 但我认为最简单的是:(亲测有效) 1.直接把文件放在 /var/lib/tomcat6/webapps/ROOT 目录下, 2.然后在网址中访问: ...

  6. Linux SCIM/fcitx/ibus 输入法

    现在很多发行版linux一般都是装好scim scim-tables-zh 重启就行 但有时重启后还是不能调用 可以用如下方法: 添加文件: sudo gedit /etc/X11/xinit/xin ...

  7. gpk-update-icon占用CPU及清除【原创】

    发现服务器有个gpk-update-icon一直占用CPU进程 网上查看相关信息比较少. gpk-update-icon是gnome的更新图标进程 俩种处理方法: 1.杀掉gpk-update-ico ...

  8. redis+cookie+json+filter实现单点登录

    目录: 1.项目集成redis客户端jedis 引入Jedis pom 2.redis连接池构建及调试 1)JedisPoolConfig源码解析 2)JedisPool源码解析 3)JedisPoo ...

  9. Linux/Unix 怎样找出并删除某一时间点的文件

    Linux/Unix 怎样找出并删除某一时间点的文件 在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些 ...

  10. 4、GitLab 创建、删除、修改项目

    一.gitLab创建项目 1.创建用户组 2.填写组信息后单击“Create group” 其中:“Group path”将显示在git路径中 3.选择需要加入该组的“用户”和“角色”后点击“Add ...