zoukankan      html  css  js  c++  java
  • BZOJ3810: [Coci2015]Stanovi

    3810: [Coci2015]Stanovi

    Description

    Input

    输入一行,三个整数,n, m, k
     

    Output

    输出一个数,表示最小不满意度。
     

    Sample Input

    3 3 2

    Sample Output

    1

    【Hint】
    见描述中的左图的分割方案,最小不满意度为4 * (2 - 2) ^ 2 + (1 - 2) ^ 2 = 1。

    【数据范围】
    n, m <= 300
    k <= 10000

    HINT

     

    Source


    dp
    f[x][y][u][d][l][r]表示x*y的矩阵且边的临接情况
    u=1表示上面连接了,0表示没有连接
    d是下面,l r是左右
    初值是(xy-K)^2
    在合法范围内转移即可
     1 /**************************************************************
     2     Problem: 3810
     3     User: white_hat_hacker
     4     Language: C++
     5     Result: Accepted
     6     Time:6192 ms
     7     Memory:12448 kb
     8 ****************************************************************/
     9  
    10 #include<cstdio>
    11 #include<cstdlib>
    12 #include<algorithm>
    13 #include<cstring>
    14 #define MAXN 305
    15 #define ll long long
    16 using namespace std;
    17 int n,m,k;
    18 ll f[MAXN][MAXN][2][2][2][2];
    19 ll dp(int x,int y,int u,int d,int l,int r){
    20     if(x<y){
    21         swap(x,y);
    22         swap(u,r);
    23         swap(d,l);
    24     }
    25     if(!u&&d){
    26         swap(u,d);
    27     }
    28     if(!l&&r){
    29         swap(l,r);
    30     }
    31     ll &p=f[x][y][u][d][l][r];
    32     if(p!=-1){
    33         return p;
    34     }
    35     p=(ll)(x*y-k)*(x*y-k);
    36     for(int i=1;i<x;i++){
    37         if(!l&&!r&&(!u||!d)) continue;
    38         p=min(p,dp(i,y,u,0,l,r)+dp(x-i,y,0,d,l,r));
    39     }
    40     for(int j=1;j<y;j++){
    41         if(!u&&!d&&(!r||!l)) continue;
    42         p=min(p,dp(x,j,u,d,l,0)+dp(x,y-j,u,d,0,r));
    43     }
    44     return p;
    45 }
    46 int main()
    47 {
    48     memset(f,-1,sizeof(f));
    49     scanf("%d%d%d",&n,&m,&k);
    50     printf("%lld",dp(n,m,1,1,1,1));
    51     return 0;
    52 }
    53 
  • 相关阅读:
    restframwork框架
    restful规范
    python_微信 跳一跳
    项目经历1
    python3.6+GDAL-2.1.3环境配置
    OpenCV&&python_图像平滑(Smoothing Images)
    opencv python3.6安装和测试
    python_机器学习—sklearn_win_64-3.6安装&&测试
    python安装 numpy&安装matplotlib& scipy
    自动出题判分——c#学习实践
  • 原文地址:https://www.cnblogs.com/w-h-h/p/7726636.html
Copyright © 2011-2022 走看看