BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)
描述
http://www.lydsy.com/JudgeOnline/problem.php?id=1084
给出一个n*m的矩阵,其中m<=2,取k个子矩阵,求最大子矩阵和.
分析
1.m=1时
dp[i][k]表示在前i列里面选k个的最优解.那么对于第i列,有选和不选两种可能.则有:
dp[i][k]=max(dp[i-1][k],max{dp[x][k-1]+s1[i]-s1[x]}(0<x<i))
2.m=2时
dp[i][j][k]表示第一行前i列,第二行前j列选k个的最优解.那么可以分开考虑每一行的那一列选不选的情况,最后如果i==j,还要考虑两列一起选的情况.则有:
dp[i][j][k]=max(dp[i-1][j][k],dp[i][j-1][k],max{dp[x][j][k-1]+s1[i]-s1[x]}(0<x<i),max{dp[i][x][k-1]+s2[j]-s2[x]}(0<x<j),max{dp[x][x][k-1]+s1[i]-s1[x]+s2[j]-s2[x]}(0<x<i,0<x<j)))
#include <bits/stdc++.h>
using namespace std; const int maxn=+;
int n,m,K;
int s[][maxn];
int dp1[maxn][],dp2[maxn][maxn][];
int main(){
scanf("%d%d%d",&n,&m,&K);
for(int i=;i<=n;i++)for(int j=;j<m;j++){
int t; scanf("%d",&t);
s[j][i]=s[j][i-]+t;
}
if(m==){
for(int i=;i<=n;i++)for(int k=;k<=K;k++){
dp1[i][k]=dp1[i-][k];
for(int x=;x<i;x++) dp1[i][k]=max(dp1[i][k],dp1[x][k-]+s[][i]-s[][x]);
}
printf("%d\n",dp1[n][K]);
}
else{
for(int i=;i<=n;i++)for(int j=;j<=n;j++)for(int k=;k<=K;k++){
dp2[i][j][k]=max(dp2[i-][j][k],dp2[i][j-][k]);
for(int x=;x<i;x++) dp2[i][j][k]=max(dp2[i][j][k],dp2[x][j][k-]+s[][i]-s[][x]);
for(int x=;x<j;x++) dp2[i][j][k]=max(dp2[i][j][k],dp2[i][x][k-]+s[][j]-s[][x]);
if(i==j)for(int x=;x<i;x++) dp2[i][j][k]=max(dp2[i][j][k],dp2[x][x][k-]+s[][i]-s[][x]+s[][j]-s[][x]);
}
printf("%d\n",dp2[n][n][K]);
}
return ;
}
1084: [SCOI2005]最大子矩阵
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2115 Solved: 1049
[Submit][Status][Discuss]
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
1 -3
2 3
-2 3
Sample Output
HINT
Source
BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)的更多相关文章
- Spring_MVC_教程_快速入门_深入分析
Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...
- 基于samba实现win7与linux之间共享文件_阳仔_新浪博客
基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.
- 浅谈 Underscore.js 中 _.throttle 和 _.debounce 的差异
Underscore.js是一个很精干的库,压缩后只有5.2KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程. 本文仅探讨Underscore.js的两个 ...
- CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站
CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMA ...
- 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线【图】_品牌资讯_服饰_太平洋时尚网
聚焦设计交易与商业落地 DANG·DHUB设计师平台上线[图]_品牌资讯_服饰_太平洋时尚网 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线
- 联系我们_你我想法_【有男度】UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站
联系我们_你我想法_[有男度]UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站 联系我们 2012-02-17 国内北京公司总部 邮编 ...
- Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!
Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松! 首页 / 关于 ...
- 北京西服定做_衬衫定制_关于我们_Dimoon TLR.
北京西服定做_衬衫定制_关于我们_Dimoon TLR.
- MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载
MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载 武侠类手机文字游戏,经典再现高度自由玩法宠物 自制装备 师徒自立门派 自造武功欢迎来玩 Q群 1 ...
随机推荐
- InstallShield 版本转换
InstallShield : 如何用低版本 打开高版本的工程 InstallShield 每个版本都有对应的版本号SchemaVersion,如下所示 InstallShield Versi ...
- jQuery Mobile里xxx怎么用呀?(控件篇)
jQuery Mobile里都有什么控件? http://api.jquerymobile.com/category/widgets/ jQuery Mobile里slider控件的change事件怎 ...
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
- yii2配置表前缀
前缀设置 component中db的配置修改 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=xxxx', ...
- 【6】了解Bootstrap栅格系统基础案例(1)
从上一张我们了解了栅格选项,那么我们就来了实战了解下吧(其实还是中文官网的案例) ps.我这里是电脑上用谷歌浏览器来观察的,毕竟电脑的分辨率高(1440*900px),谷歌浏览器最大化后,值比大屏幕设 ...
- phpmyadmin 4.x 版本无法看到登录框的处理
由于个人dreamhost即将到期问题,购买了一台VPS. 配置了一个CentOS 6.4 Linux 服务器,用Nginx+php-fpm搭建的环境. 这些都是废话,下面是重点: 当搭建后配置php ...
- Python Socket,How to Create Socket Cilent? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- ASP.NET MVC Razor视图(2)
昨天介绍了一些Razor的基本语法,几天接着向下说: 补成一个,上次介绍了怎么输出原样的文本,用<text></text>标签,下面再介绍一种语法: @{@:我爱北京} 这个 ...
- MVC-内容详情页显示内容
@model InfoDataProvider.DataModel.FAQ_ContentUser 内容Content字段:如果里面有html标签. @Html.DisplayFor(p => ...
- linux sed 批量替换多个文件中的字符
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...