• BZOJ1084 SCOI2005最大子矩阵


    考虑DP

    f[i][j][k]表示一行到i一行到j共取k块最大值,类似于最长公共子序列n^2那种

    注意相等时可以一起拿

    By:大奕哥

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n,m,K,g[105][105][15],f[105][105],s[105][105],x;
     4 int main()
     5 {
     6     scanf("%d%d%d",&n,&m,&K);
     7     for(int i=1;i<=n;++i)
     8     for(int j=1;j<=m;++j)
     9     {
    10         scanf("%d",&x);
    11         s[i][j]=s[i-1][j]+x;
    12     }
    13     if(m==1)
    14     {
    15         memset(f,-0x3f,sizeof(f));
    16         for(int i=1;i<=n;++i)f[i][0]=0; 
    17         for(int i=1;i<=n;++i)
    18         {
    19             for(int k=1;k<=K;++k)
    20             {
    21                 f[i][k]=max(f[i][k],f[i-1][k]);
    22                 for(int j=0;j<i;++j)
    23                 f[i][k]=max(f[i][k],f[j][k-1]+s[i][1]-s[j][1]);
    24             }
    25         }
    26         printf("%d
    ",f[n][K]);
    27     }
    28     else
    29     {
    30         memset(g,-0x3f,sizeof(g));
    31         for(int i=1;i<=n;++i)
    32         for(int j=1;j<=n;++j)
    33         g[i][j][0]=0;
    34         for(int i=1;i<=n;++i)
    35         for(int j=1;j<=n;++j)
    36         {
    37             for(int k=1;k<=K;++k)
    38             {
    39                 g[i][j][k]=max(g[i-1][j][k],g[i][j-1][k]);
    40                 for(int p=0;p<i;++p)g[i][j][k]=max(g[i][j][k],g[p][j][k-1]+s[i][1]-s[p][1]);
    41                 for(int p=0;p<j;++p)g[i][j][k]=max(g[i][j][k],g[i][p][k-1]+s[j][2]-s[p][2]);
    42                 if(i==j)
    43                 for(int p=0;p<i;++p)
    44                 g[i][j][k]=max(g[i][j][k],g[p][p][k-1]+s[i][1]+s[i][2]-s[p][1]-s[p][2]);
    45             }
    46         }
    47         printf("%d
    ",g[n][n][K]);
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    JS URL传中文参数引发的乱码问题
    git (转载)
    php webservice
    php date之间的相互转换
    在图片上加字符-base64转图片-图片转base64
    转:微软面试一百题
    2014-8-17 note
    some base knowledge
    introduction
    Centos6.6 编译安装nginx
  • 原文地址:https://www.cnblogs.com/nbwzyzngyl/p/8361409.html
Copyright © 2020-2023  润新知