zoukankan      html  css  js  c++  java
  • CF449A Jzzhu and Chocolate

    Solution

    可以设横向切了 (x) 次,则纵着切了 (k-x) 刀,为使最小值最大化,所以要切的均匀。那么 (ans=leftlfloordfrac n{x+1} ight floorcdotleftlfloordfrac m{k-x+1} ight floor(0leq xleq k))

    因为 (leftlfloordfrac n{i} ight floor) 最多有 (sqrt n) 种取值,所以枚举找最小值即可。

    代码

    #include<bits/stdc++.h>
    #define ll long long
    
    using namespace std;
    ll n,m,k;
    
    ll solve(ll n,ll m,ll k){
        ll ans=1;
        for(int i=1,pre=0;i<=n;i=pre+1){
            pre=n/(n/i);
            if(pre>k+1){
                ans=max(ans,n/(k+1)*m);
                break;
            }
            ans=max(ans,(n/pre)*(m/(k-pre+2)));
        }
        return ans;
    }
    
    int main(){
        while(~scanf("%lld%lld%lld",&n,&m,&k)){
            if(k>n+m-2) puts("-1");
            else printf("%lld
    ",solve(n,m,k));
        }
        return 0;
    }
    
  • 相关阅读:
    路径
    JSTL-3
    JSTL-2
    JSTL-1
    EL和JSTL的关系
    Mybatis控制台打印SQL语句的两种方式
    centOS7安装JDK
    centOS7下安装GUI图形界面
    centOS7配置IP地址
    Office2016专业增强版永久激活
  • 原文地址:https://www.cnblogs.com/jasony/p/13843210.html
Copyright © 2011-2022 走看看