zoukankan      html  css  js  c++  java
  • codeforces C. Jzzhu and Chocolate

    http://codeforces.com/contest/450/problem/C

    题意:一个n×m的矩形,然后可以通过横着切竖着切,求切完k次之后最小矩形面积的最大值。

    思路:设k1为横着切的次数,k2为竖着切的次数,最后的面积的大小为s=n/(k1+1)*(m/(k2+1)); 只有(k1+1)*(k2+1)的最小时,s最大.

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <algorithm>
     5 #define ll long long
     6 using namespace std;
     7 
     8 ll n,m,k;
     9 
    10 int main()
    11 {
    12     cin>>n>>m>>k;
    13      ll ans=0;
    14     if(k>(n-1+m-1))
    15     {
    16         printf("-1
    ");
    17         return 0;
    18     }
    19     else
    20     {
    21         if(n-1>=k)
    22         {
    23            ans=max(ans,m*(n/(k+1)));
    24         }
    25         else
    26         {
    27             ans=max(ans,m/(k-(n-1)+1));
    28         }
    29         if(m-1>=k)
    30         {
    31             ans=max(ans,n*(m/(k+1)));
    32         }
    33         else
    34         {
    35             ans=max(ans,n/(k-m+2));
    36         }
    37     }
    38     cout<<ans<<endl;
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    BZOJ
    [知识点]平衡树之Splay
    [BZOJ1015/JSOI2008]星球大战
    [知识点]状态压缩DP
    [NOIP2011]聪明的质检员
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4337780.html
Copyright © 2011-2022 走看看