zoukankan      html  css  js  c++  java
  • 「Codeforces」598E (区间dp)

    题意:原题在这

    有t组输入,每次有n*m的巧克力,要吃k块
    只能整行切,代价是长度的平方
    求最小代价

    做法:(详见行内注释)

    枚举切几块和该情况下横切还是纵切

    特判:
      切0块、没有巧克力、切一整块

    暴力五重循环233

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #define inf 99999999
    using namespace std;
    int t,n,m,k;
    int dp[55][55][60];
    
    int main()
    {
        for(int i=0;i<=30;i++)
        for(int j=0;j<=30;j++)
        for(int k=0;k<=50;k++)
        {
            dp[i][j][k]=inf;
            if(k==0||i*j==0||i*j==k) dp[i][j][k]=0;
            for(int c=0;c<=k;c++)//切几块
            {
                for(int x=1;x<i;x++) //切竖行
                {
                    dp[i][j][k]=min(dp[i][j][k],dp[x][j][c]+dp[i-x][j][k-c]+j*j);
                }
                for(int y=1;y<j;y++) //切横行
                {
                    dp[i][j][k]=min(dp[i][j][k],dp[i][y][c]+dp[i][j-y][k-c]+i*i);
                }
            }
        }
        cin>>t;
        for(int i=1;i<=t;i++) 
        {
            cin>>n>>m>>k;
            cout<<dp[n][m][k]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    SVN服务器搭建和使用(一)
    SVN服务器搭建和使用(一)
    lua loadstring与loadfile
    lua loadstring与loadfile
    lua_getstack
    lua_getstack
    让程序在崩溃时体面的退出之Dump文件
    bzoj1054
    poj3678
    poj2749
  • 原文地址:https://www.cnblogs.com/LocaEtric/p/9614915.html
Copyright © 2011-2022 走看看