大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
主题链接:http://codeforces.com/contest/448/problem/D
思路:用二分法
code:
#include<cstdio> #include<cmath> #include<iostream> using namespace std; __int64 n,m,k; __int64 f(__int64 x) { __int64 res=0; for(__int64 i=1;i<=n;i++) { __int64 minn=min(m,x/i); //计算第i行有多少个数比x小,而且最多也仅仅要m个数比x小 res+=minn; //计算出比x小的数的共同拥有多少个 } return res<k; } int main() { while(scanf("%I64d%I64d%I64d",&n,&m,&k)==3) { __int64 l=1,r=n*m; while(l<r) { __int64 mid=(l+r)/2; if(f(mid))l=mid+1; else r=mid; } printf("%I64d\n",l); } return 0; }
版权声明:本文博客原创文章。博客,未经同意,不得转载。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117183.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...