牛客国庆集训派对Day5 L 数论之神(规律)

版权声明:哈哈哈哈哈哈哈哈哈哈哈哦吼~~ https://blog.csdn.net/threeh20/article/details/83032532

https://www.nowcoder.com/acm/contest/205/L

第一个问题可以oeis或者打表发现规律二分来解。

对于第二个问题就是找规律了,可以发现最终出现的数字是对称相互对应的!

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n;
    int t;
    cin>>t;
    long long k;
    while(t--)
    {
        cin>>n>>k;
        long long ans=sqrt(4*n+1)-1;
        cout<<ans<<" ";
        long long kg=sqrt(n);
        k=ans-k+1;
        if(k<=kg)
        {
            cout<<k<<endl;
        }
        else{
            if(ans%2==0)
            {
                k-=kg;
                long long an1=n/(kg-k+1);
                cout<<an1<<endl;
            }
            else{
                k-=kg;
                long long an1=n/(kg-k);
                cout<<an1<<endl;
            }
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/threeh20/article/details/83032532