Codeforces 201E Thoroughly Bureaucratic Organization (智商题。。)

来源:互联网 发布:python 写入txt文件 编辑:程序博客网 时间:2024/04/29 23:47
#include <iostream>  #include <cstdio>  #include <cstring>  #include <cmath>  #include <algorithm>  #include <queue>  #include <set>  #include <ctime>  #include <cstdlib>  using namespace std;  #define inf 0x3f3f3f3f#define N 10000020#define M 1000020#define LL long long#define mod 1000000007#define ls (i << 1)#define rs (ls | 1)#define md (ll + rr >> 1)#define lson ll, md, ls#define rson md + 1, rr, rs#define B 350int n, m;int qpow(int x, int k) {int ret = 1;while(k) {if(k & 1) ret = 1LL * ret * x % mod;k >>= 1;x = 1LL * x * x % mod;}return ret;}bool check(int k) {if(n == 1) return 1;LL sum = 1, t = 1LL * k * m;double c = 1;LL s = 1;for(int i = 1; i <= k; ++i) {LL x = t / i, y = mod;if(x == 0) return 0;c = c * (k - i + 1) / i;s = s * (k - i + 1) % mod * qpow(i, mod - 2) % mod;if(c < mod) y = s;x = min(x, y);sum += x;if(sum >= n) return 1;t -= x * i;}return 0;}int main() {int cas;scanf("%d", &cas);while(cas--) {scanf("%d%d", &n, &m);int l = 0, r = n;while(l < r) {int mid = (l + r) / 2;if(check(mid)) r = mid;else l = mid + 1;}printf("%d\n", l);}return 0;}

0 0
原创粉丝点击