1084: [SCOI2005]最大子矩阵

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 1325  Solved: 670
[Submit][Status]

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 3

Sample Output

9

HINT

 

Source

 题解:看了半天不知道怎么办才好,直到发现M<=2(HansBug:呵呵你早说就俩列得了呗呵呵哒)假如这样的话那么直接根据此行俩数的不同情况讨论下不就得啦。。。情况繁一点
 program bzoj1084;

 {$mode objfpc}{$H+}

 uses
Classes, SysUtils
{ you can add units after this }; var
i,j,k,l,m,n,tot,ii,jj:longint;
b:array [..,..] of longint;
a:array [..,..,..] of longint;
begin
readln(n,m,k);
for i:= to n do for j:= to m do read(b[i,j]);
if m= then
begin
for i:= to k do
begin
a[,,i]:=-maxlongint div ;
a[,,i]:=-maxlongint div ;
end;
a[,,]:=;
for i:= to n do
for j:= to k do
begin
if a[i-,,j]>a[i-,,j] then a[i,,j]:=a[i-,,j] else a[i,,j]:=a[i-,,j];
if j= then
a[i,,j]:=-maxlongint div
else
begin
a[i,,j]:=a[i-,,j]+b[i,];
if a[i,,j]<a[i-,,j-]+b[i,] then a[i,,j]:=a[i-,,j-]+b[i,];
if (j>) and (a[i,,j]<a[i-,,j-]+b[i,]) then a[i,,j]:=a[i-,,j-]+b[i,];
end;
end;
if a[n,,k]>a[n,,k] then writeln(a[n,,k]) else writeln(a[n,,k]);
halt;
end;
for i:= to k do for j:= to do a[,j,i]:=-maxlongint div ;
a[,,]:=;
for i:= to n do
for j:= to k do
begin
for ii:= to do
case ii of
:begin
a[i,,j]:=a[i-,,j];
for jj:= to do if a[i,,j]<a[i-,jj,j] then a[i,,j]:=a[i-,jj,j];
end;
..:begin
a[i,ii,j]:=a[i-,ii,j]+b[i,ii];
for jj:= to do if (j>) and (a[i,ii,j]<a[i-,jj,j-]+b[i,ii]) then a[i,ii,j]:=a[i-,jj,j-]+b[i,ii];
if a[i,ii,j]<a[i-,,j]+b[i,ii] then a[i,ii,j]:=a[i-,,j]+b[i,ii];
end;
:begin
a[i,ii,j]:=a[i-,ii,j]+b[i,]+b[i,];
for jj:= to do if (j>=) and (a[i,ii,j]<a[i-,jj,j-]+b[i,]+b[i,]) then a[i,ii,j]:=a[i-,jj,j-]+b[i,]+b[i,];
for jj:= to do if (j>=) and (a[i,ii,j]<a[i-,jj,j-]+b[i,]+b[i,]) then a[i,ii,j]:=a[i-,jj,j-]+b[i,]+b[i,];
end;
:begin
a[i,ii,j]:=a[i-,ii,j]+b[i,]+b[i,];
for jj:= to do if (j>=) and (a[i,ii,j]<a[i-,jj,j-]+b[i,]+b[i,]) then a[i,ii,j]:=a[i-,jj,j-]+b[i,]+b[i,];
end;
end;
end;
tot:=-maxlongint div ;
for i:= to do if tot<a[n,i,k] then tot:=a[n,i,k];
writeln(tot);
end.

1084: [SCOI2005]最大子矩阵的更多相关文章

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

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

  2. 【BZOJ 1084】 1084: [SCOI2005]最大子矩阵 (DP)

    1084: [SCOI2005]最大子矩阵 Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第 ...

  3. BZOJ(6) 1084: [SCOI2005]最大子矩阵

    1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3566  Solved: 1785[Submit][Sta ...

  4. 【BZOJ】1084: [SCOI2005]最大子矩阵(DP)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1084 有一个1A--- 本题没看懂,,不会啊囧..感觉完全设不了状态..看了题解,囧,m<=2 ...

  5. [BZOJ 1084] [SCOI2005] 最大子矩阵 【DP】

    题目链接:BZOJ - 1084 题目分析 我看的是神犇BLADEVIL的题解. 1)对于 m = 1 的情况, 首先可能不取 Map[i][1],先 f[i][k] = f[i - 1][k];   ...

  6. BZOJ 1084 [SCOI2005]最大子矩阵 - 动态规划

    传送门 题目大意: 从矩阵中取出k个互不重叠的子矩阵,求最大的和. 题目分析: 对于m=1,直接最大m子段和. 对于m=2: \(dp[i][j][k]\)表示扫描到第一列i和第2列j时选取了k个矩阵 ...

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

    NICE 的DP 题,明白了题解真是不错. Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1228  Solved: 622[Submit][Stat ...

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

    Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...

  9. 1084. [SCOI2005]最大子矩阵【网格DP】

    Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵 不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤ ...

随机推荐

  1. 扩展BaseAdapter实现不存储列表项的ListView

    下面的实例将会通过扩展BaseAdapter来实现Adapter,扩展BaseAdapter可以取得对Adapter最大的控制权:程序要创建多个列表项,每个列表项的组件都由开发者来决定. 下面的布局文 ...

  2. easyUI 添加排序到datagrid

    http://www.cnblogs.com/javaexam2/archive/2012/08/10/2632645.html

  3. Spring @Aspect进行类的接口扩展

    Spring @Aspect进行类的接口扩展: XML: <?xml version="1.0" encoding="UTF-8"?> <be ...

  4. Recurrent Neural Network系列2--利用Python,Theano实现RNN

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  5. loadrunner:从数据库中取值进行参数化

    下面我们介绍用数据库中的用户名来参数化登陆用户名. 框选住登陆名,点鼠标右键,弹出对话框,选择"替换为新参数"弹出对话框,此时参数名输入:name,参数类型选择File,如图 点& ...

  6. HDU4127(IDA*)

    Flood-it! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  7. 用Mockito测试SpringMVC+Hibernate

    用Mockito测试SpringMVC+Hibernate 译自:Spring 4 MVC+Hibernate 4+MySQL+Maven integration + Testing example ...

  8. MyBatis绑定错误--BindingException:Invalid bound statement (not found)

    如果出现: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因是Mapper i ...

  9. Windows Azure Virtual Machine (34) 保护Azure虚拟机

    <Windows Azure Platform 系列文章目录> 请注意:我们在Azure上创建的虚拟机,都是可以通过公网IP地址来访问的.(直接通过虚拟机的IP地址:PIP,或者通过负载均 ...

  10. “权限系统_基于HUI”的简单介绍和交流

    昂,最近比较闲,写了个权限系统. 后端框架还是老样子,基于本人自己搭建的后台基础开发框架"Spring_Mvc_EF":前端框架,我挑选了一阵子,最后选用了HUI前端开发框架,因为 ...