wcz


私信TA

用户名:20010630

访问量:4562

签 名:

等  级
排  名 769
经  验 3591
参赛次数 4
文章发表 5
年  龄 0
在职情况 学生
学  校 sru
专  业

  自我简介:

TA的其他文章

解题思路:
参考

https://blog.csdn.net/zy98zy998/article/details/122293334
注意事项:

参考代码:

#include<iostream>
using namespace std;

typedef long long ll;

ll n;

ll C(ll q,ll x)   
{
    ll ans=1;
    for(int i=1,j=q-x+1;i<=x;i++,j++) 
    {
        ans=ans*j/i;
        if(ans>n) return ans;
    }
    return ans;
}

ll check(ll x)           //二分
{
    ll l=2*x,r=n,q;
    while(l<=r)
    {
        ll mid=l+(r-l)/2; 
        q=C(mid,x);
        if(q>n) r=mid-1;
        else if(q<n) l=mid+1;
        else 
        {
            cout<<(1+mid)*mid/2+x+1<<endl;
            return 1;
        }
    }
    return 0;
}

int main()
{
    cin>>n;
    for(int i=14;~i;i--)
    {
        if(check(i)) break;
    }
    return 0;
}


 

0.0分

8 人评分

  评论区

大佬666
2022-03-24 00:18:29
  • «
  • 1
  • »