2023年牛客基础训练营2-E

题目链接:https://ac.nowcoder.com/acm/contest/46810/E

被恶心坏了,一个小地方几个小时都没想到一直WAWAWA。

思路:没啥好说的,二分。

恶心的地方:如图所示:

img

代码:

#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;
}
posted @ 2023-04-07 10:21  安潇末痕  阅读(24)  评论(0)    收藏  举报