算法:二分查找。
由于最大的数为n*m=25*10^10,想到二分。第k大的数就是说有k个小于等于他的数(这种说法也不准确),
反正就是第一个找到的这样的最小的数。
充分利用乘法表的特点,每一行都是行数乘以1-m。所以找比小于等于x的数就是min(m,x/i)。
P.S 。。。反正我是没想到这个解法啦。。。o(?□?)o。。。学习了。。。
#include #include #include #include using namespace std;typedef long long ll;ll k,n,m;ll min(ll x,ll y){ return x >1; if(check(mid)>=k) { ans = mid; r = mid-1; } else l = mid+1; } printf("%I64d\n",ans); } return 0;}
查看更多关于CodeforcesRound#256(Div.2)A/B/C/D_html/css_WEB-ITn的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did105495