【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)
1084: [SCOI2005]最大子矩阵
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
3 2 2
1 -3
2 3
-2 3Sample Output
9HINT
【分析】
终于考完ws的期末考回来刷题了,表示很桑心先刷一道水题淡定一下。。。
表示又是智障看错了以为k是100。
思路很简单,m<=2,分m=1 m=2两种情况讨论。
m=1:
f[i][j]表示选了前i个数,j个矩阵的最优值,枚举最后一个矩阵转移。
m=2:
f[i][j][k]表示第一行选了前i个数,第二行选了前j个数,一共k个矩阵的最优值。
状态:1、枚举第一行最后一个矩阵。
2、枚举第二行最后一个矩阵。
3、当i=j,可以两行一起选,枚举两行一起选的最后一个矩阵。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 110 int a[][Maxn],h[][Maxn],f[Maxn][Maxn];
int d[Maxn][Maxn][Maxn]; int mymax(int x,int y) {return x>y?x:y;} int main()
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;i++)
for(int j=;j<m;j++) scanf("%d",&a[j][i]);
h[][]=h[][]=;
for(int i=;i<m;i++)
for(int j=;j<=n;j++) h[i][j]=h[i][j-]+a[i][j];
int ans=;
if(m==)
{
memset(f,,sizeof(f));
for(int i=;i<=n;i++)
for(int j=;j<=i&&j<=k;j++)
{
for(int l=;l<i;l++)
f[i][j]=mymax(f[i][j],f[l][j-]+h[][i]-h[][l]);
f[i][j]=mymax(f[i][j],f[i-][j]);
}
for(int i=k;i<=n;i++) ans=mymax(ans,f[i][k]);
}
else
{
memset(d,,sizeof(d));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int l=;l<=k;l++)
{
for(int p=;p<i;p++) d[i][j][l]=mymax(d[i][j][l],d[p][j][l-]+h[][i]-h[][p]);
for(int p=;p<j;p++) d[i][j][l]=mymax(d[i][j][l],d[i][p][l-]+h[][j]-h[][p]);
if(i==j)
{
for(int p=;p<i;p++) d[i][j][l]=mymax(d[i][j][l],d[p][p][l-]+h[][i]+h[][j]-h[][p]-h[][p]);
}
d[i][j][l]=mymax(d[i][j][l],d[i-][j][l]);
d[i][j][l]=mymax(d[i][j][l],d[i][j-][l]);
if(l==k) ans=mymax(ans,d[i][j][l]);
// printf("d[%d][%d][%d]= %d\n",i,j,l,d[i][j][l]);
}
}
printf("%d\n",ans);
return ;
}
2017-01-11 09:11:39
【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)的更多相关文章
- BZOJ 1084: [SCOI2005]最大子矩阵 DP
1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...
- 洛谷P2331 [SCOI2005]最大子矩阵 DP
P2331 [SCOI2005]最大子矩阵 题意 : 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 第一行为n,m,k(1≤n≤ ...
- 【BZOJ 1084】 [SCOI2005]最大子矩阵(DP)
题链 http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩 ...
- 【BZOJ 1084】[SCOI2005]最大子矩阵
Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
- bzoj1084: [SCOI2005]最大子矩阵 dp
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表 ...
- BZOJ(6) 1084: [SCOI2005]最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3566 Solved: 1785[Submit][Sta ...
- BZOJ 1084 (SCOI 2005) 最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3560 Solved: 1779 [Submit][Sta ...
- 1084: [SCOI2005]最大子矩阵
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1325 Solved: 670[Submit][Stat ...
- 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] ...
随机推荐
- Super A^B mod C (快速幂+欧拉函数+欧拉定理)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1759 题目:Problem Description Given A,B,C, You should quick ...
- LESS使用简介!
我真的真的极度痛苦. 原本用了那么久的LESS,一直都是用编译工具(考拉)进行编译的,今天试了试用less.js来搞,按官网的都一毛一样,然而!就是编译不出来! 我用来擦鼻涕的卫生纸都一下午用了大半卷 ...
- 边绘边理解prototype跟__proto__
网上流传着一张讲解prototype跟__proto__关系的图,尽管他已经描绘的很清楚了,但对于初学者来说,江太公感觉还是过于纠结,于是起心重绘,让他们之间的关系更加明晰可理解,一方面出于分享目的, ...
- sqlmap参数说明
--delay 设置每隔几秒测试一次注入 --safe-url 设置sqlmap要访问的正常url --safe-freq 设置每测试多少条注入语句后才去访问safe-url --code 设置能正常 ...
- Python模块学习 - Functools
Functools模块 Higher-order functions and operations on callable objects,看这个标题我都是懵逼的,这都是啥啥啥啊,赶紧拿出百度翻译:可 ...
- Win10默认浏览器怎么设置
1.首先在Win10桌面左下角的开始菜单图标上右键单击鼠标,在弹出的菜单选项中,点击进入“控制面板”,如下图所示. 接下来就可以找到“默认程序”设置了,找到后点击进入设置,如下图所示. 打开Win10 ...
- appium===登陆应用的案例
import time import os from appium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- c json实战引擎五 , 优化重构
引言 scjson是一个小巧的纯c跨平台小巧引擎. 适用于替换老的cJSON引擎的场景. 数据结构和代码布局做了大量改进.优势体现在以下几个方面: 1) 跨平台 (window 10 + VS2017 ...
- 12-7 NSDictionary
原文:http://rypress.com/tutorials/objective-c/data-types/nsdictionary NSDictionary 如同NSSet,NSDictionar ...
- tomcat - gc日志输出
原创 2017年01月04日 14:32:37 2090 tomcat/bin catalina.sh JAVA_OPTS='-server -Xms4g -Xmx4g -Xss256k -XX:Pe ...