2023年牛客基础训练营2-E
题目链接:https://ac.nowcoder.com/acm/contest/46810/E
被恶心坏了,一个小地方几个小时都没想到一直WAWAWA。
思路:没啥好说的,二分。
恶心的地方:如图所示:

代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin>>t;
while(t--){
long long n,l,r;
cin>>n>>l>>r;
long long L = l,R = l;
long long val = n/l+l-1;
if (n/r+r-1<val) val = n/r+r-1,R = r;
long long x = sqrt(n);
long long a = n/x+x-1;
if (x>=l&&x<=r&&val>a) val = a,R = x;
x++;
a = n/x+x-1;
if (x>=l&&x<=r&&val>a) val = a,R = x;
while(L<R){
long long mid = L+R>>1;
if (n/mid+mid-1>val) L = mid+1;
else if (n/mid+mid-1==val) R = mid;
}
cout<<R<<'\n';
}
return 0;
}
浙公网安备 33010602011771号