zoukankan      html  css  js  c++  java
  • CHOI1001/1002 火车进出栈问题

    众所周知答案为C(N,2*N)/(N+1)。

    由于本juruo太弱,不会高精除法,只会质因数分解。复杂度多了个sqrt(N)?

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll a[1000100];
    ll t[120100],len=1;
    void chen(ll x){
        for(ll i=1;i<=len;++i)a[i]=a[i]*x;
        for(ll i=1;i<=len;++i){
            a[i+1]+=a[i]/10;
            a[i]%=10;
            if(a[len+1])++len;
        }
    }
    int main(){
        ll n;
        scanf("%lld",&n);
        for(ll i=2*n;i>=n+2;--i){
            ll k=i,m=sqrt(k+1);
            for(ll j=2;j<=m;++j){
                while(k%j==0)k/=j,t[j]++;
            }
            if(k!=1)t[k]++;
        }
        for(ll i=1;i<=n;++i){
            ll k=i,m=sqrt(k+1);
            for(ll j=2;j<=m;++j){
                while(k%j==0)k/=j,t[j]--;
            }
            if(k!=1)t[k]--;
        }
        a[1]=1;
        for(ll i=1;i<=120100;++i){
            for(ll j=1;j<=t[i];++j){
                chen(i);
            }
        }
        for(ll i=len;i>=1;--i)printf("%lld",a[i]);
        return 0;
    }
    View Code
  • 相关阅读:
    文件的上传
    JSP基础知识
    AJAX
    Listener
    Filter(一)
    session
    网络爬虫(9)-xpath解析
    网络爬虫(8)-正则表达式
    网络爬虫(7)-beautifulSoup解析库
    网络爬虫(6)-Requests库
  • 原文地址:https://www.cnblogs.com/Dream-Runner/p/10152277.html
Copyright © 2011-2022 走看看