申请加强数据
查看原帖
申请加强数据
895690
gghack_Nythix楼主2023/6/30 21:18

rt,下面这份代码无法通过测试,但可以AC,请求加强

#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans,n;
int yh(int k,int m){
	int sum = 1;
	for(int i = k,j = 1;j <= m;--i,++j){
		sum = sum * i / j;
		if(sum > n){
			return sum;
		}
	}
	return sum;
}
signed main(){
	cin >> n;
	if(n == 1){
		cout << 1 << endl;
		return 0;
	}
	for(int i = 20;i >= 0;--i){
		int l = 2 * i,r = 114514191810;
		while(l <= r){
			int mid = (l + r) >> 1;
			int value = yh(mid,i);
			if(value < n){
				l = mid + 1;
			}
			else if(value > n){
				r = mid - 1;
			}
			else if(value == n){
				ans = (1 + mid) * mid / 2 + i + 1;
				r = mid - 1;
			}
		}
	}
	cout << ans << endl;
	return 0;
}
2023/6/30 21:18
加载中...