http://www.lydsy.com/JudgeOnline/problem.php?id=1084

思路:分m=1和m=2操作

 #include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
int f[][],F[][][];
int sum[],sum1[],sum2[],n,m,K;
int read(){
int t=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (''<=ch&&ch<=''){t=t*+ch-'';ch=getchar();}
return t*f;
}
void sxpianfen1(){
for (int i=;i<=n;i++)
{int x=read();sum[i]=sum[i-]+x;}
for (int i=;i<=n;i++)
for (int k=;k<=K;k++){
f[i][k]=f[i-][k];
for (int j=;j<i;j++)
f[i][k]=std::max(f[i][k],f[j][k-]+sum[i]-sum[j]);
}
printf("%d\n",f[n][K]);
}
void sxpianfen2(){
for (int i=;i<=n;i++){
int x=read(),y=read();
sum1[i]=sum1[i-]+x;
sum2[i]=sum2[i-]+y;
}
for (int k=;k<=K;k++)
for (int i=;i<=n;i++)
for (int j=;j<=n;j++){
F[i][j][k]=std::max(F[i-][j][k],F[i][j-][k]);
for (int l=;l<i;l++) F[i][j][k]=std::max(F[i][j][k],F[l][j][k-]+sum1[i]-sum1[l]);
for (int l=;l<j;l++) F[i][j][k]=std::max(F[i][j][k],F[i][l][k-]+sum2[j]-sum2[l]);
if (i==j)
for (int l=;l<i;l++) F[i][j][k]=std::max(F[i][j][k],F[l][l][k-]+sum1[i]+sum2[j]-sum1[l]-sum2[l]);
}
printf("%d\n",F[n][n][K]);
}
int main(){
n=read();m=read();K=read();
if (m==){
sxpianfen1();
}else
sxpianfen2();
}

BZOJ 1084 最大子矩阵的更多相关文章

  1. BZOJ 1084 最大子矩阵 dp

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1084 题目大意: 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分 ...

  2. [SCOI2005][BZOJ 1084]最大子矩阵

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

  3. 【SCOI2005】 最大子矩阵 BZOJ 1084

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

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

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

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

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

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

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

  7. BZOJ 1084 (SCOI 2005) 最大子矩阵

    1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3560 Solved: 1779 [Submit][Sta ...

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

    题链 http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩 ...

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

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

随机推荐

  1. Non-unique Elements

    Non-unique Elements You are given a non-empty list of integers (X). For this task, you should return ...

  2. BLOB二进制对象(blob.c/h)

    BLOB二进制对象(blob.c/h) 数据结构 struct blob_attr { uint32_t id_len; /** 高1位为extend标志,高7位存储id, * 低24位存储data的 ...

  3. 清除IE输入框眼睛和叉叉

    /* 清除IE输入框眼睛和叉叉 */::-ms-clear { display: none; } ::-ms-reveal { display: none; }

  4. back_insert_iterator和iterator用起来不一样。

    先看代码: #include<iostream> #include<vector> #include<algorithm> #include<iterator ...

  5. Visual Assist X在Windows 8.1下出现中文乱码的解决方法

    这主要是输入法造成的,我的输入法中有US.中文.搜狗输入法三个输入法:通过搜狗输入法管理器把“中文”去掉,或者通过语言首选项把“中文”去掉就不会在出现乱码. 这个办法的思路来自于http://www. ...

  6. Longest Palindromic Substring 解答

    Question Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...

  7. poj2242

                                                        The Circumference of the Circle Time Limit: 1000 ...

  8. JS中简单的this学习

        我在学习JS初期,在使用this的时候经常出现问题,当然就是在现在,也有一些场景不能很好的明白this到底指代的是什么?看下面一个例子:   var x = 10; var foo = { x ...

  9. ubuntu 16.04 Ubuntu 安装GDebi,从而安装deb文件

    其实在ubuntu直接双击deb文件就能安装,可是我现在装了ubuntu 16.04后,发现谷歌浏览器的deb和搜狗输入法的deb都不能直接双击安装,有点小问题. 但是安装GDebi软件后,直接在终端 ...

  10. windows10 离线包安装net3.5

    找到离线镜像: 管理员命令行运行:dism.exe /online /enable-feature /featurename:netfx3 /Source:E:\sources\sxs 路径根据实际情 ...