首页 > 代码库 > Codeforces Round #257 (Div. 2)
Codeforces Round #257 (Div. 2)
C这题说的是给了一个 矩形然后可以在矩形中切来切去 问最后那个最小块的最大面积 可以推出公式 (n/(x+1))*(m/(y+1)) x y 分别是横切个纵切的刀数, 可以通过解二元函数算出极值 ,须要取整比赛的时候就把这种方法给去掉了 悲 活该绿名
#include <iostream>#include <cstdio>#include <string.h>using namespace std;__int64 n,m,k;__int64 maxv(__int64 a, __int64 b){ return a>b?a:b;}__int64 minv(__int64 a,__int64 b){ return a>b?b:a;}int main(){ while(scanf("%I64d%I64d%I64d",&n,&m,&k)==3) { __int64 L = maxv(0,k-m+1); __int64 R = minv(k,n-1); if(k==0){ printf("%I64d\n",n*m); continue; } if(k>n+m-2){ printf("-1\n"); continue; } __int64 a = (n/(L+1))*(m/(k-L+1)); __int64 b = (n/(R+1))*(m/(k-R+1)); a =maxv(a,b); printf("%I64d\n",a); } return 0;}复制代码
Codeforces Round #257 (Div. 2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。