• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            原題地址
            這是個(gè)超級大水題,我太沙茶了,想傻了N久……后來才反應(yīng)過來……所以要寫一下作為警示。

            首先這個(gè)序列就是一個(gè)堆……
            因此,問題也就是說N個(gè)結(jié)點(diǎn),權(quán)值剛好取遍1~N的堆的總數(shù)……
            設(shè)結(jié)果為F[N]。設(shè)N個(gè)結(jié)點(diǎn)的堆,左子樹有l(wèi)個(gè)結(jié)點(diǎn),右子樹有r個(gè)結(jié)點(diǎn)(顯然有l(wèi)+r+1=N),則有
            F[N]=C(N-1, l) * F[l] * F[r]
            這個(gè)理解起來很容易囧……因?yàn)楦Y(jié)點(diǎn)只能是1,左子樹和右子樹顯然也都是堆,因此相當(dāng)于在2~N中取l個(gè)數(shù)組成左子樹,剩下的數(shù)組成右子樹……又因?yàn)椴还苋∧男?shù),左右子樹的組成方法總數(shù)都是F[l]、F[r](只與次序有關(guān))……這樣就得到上面的式子了囧……
            C(N-1, l)=N! / l! / r!,因此需要預(yù)處理出來A[i] = i! mod P,然后除法用逆元就行了囧……

            不過,本沙茶一開始想按照層數(shù)枚舉,然后相乘……自然搞不出來囧……后來又用暴力把N<=15的結(jié)果拿出來分析,想找到規(guī)律……結(jié)果毫無規(guī)律……后來又糾結(jié)了N久才想到上面這個(gè)……真正比賽的時(shí)候就悲劇了囧……所以要警示一下……

            代碼:
            #include <iostream>
            #include 
            <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <string.h>
            using namespace std;
            #define re(i, n) for (int i=0; i<n; i++)
            #define re1(i, n) for (int i=1; i<=n; i++)
            #define re2(i, l, r) for (int i=l; i<r; i++)
            #define re3(i, l, r) for (int i=l; i<=r; i++)
            #define rre(i, n) for (int i=n-1; i>=0; i--)
            #define rre1(i, n) for (int i=n; i>0; i--)
            #define rre2(i, r, l) for (int i=r-1; i>=l; i--)
            #define rre3(i, r, l) for (int i=r; i>=l; i--)
            #define ll long long
            const int MAXN = 1000010, INF = ~0U >> 2;
            int n;
            ll MOD, A[MAXN], F[MAXN], res;
            void init()
            {
                cin 
            >> n >> MOD;
            }
            void prepare()
            {
                A[
            0= A[1= 1; re3(i, 2, n) A[i] = (A[i - 1* i) % MOD;
            }
            void exgcd(ll a, ll b, ll &x, ll &y)
            {
                
            if (b) {
                    ll _x, _y; exgcd(b, a 
            % b, _x, _y);
                    x 
            = _y; y = _x - (a / b) * _y;
                } 
            else {x = 1; y = 0;}
            }
            void solve()
            {
                F[
            0= F[1= 1int s = 1, l = 0, r = 0; ll x, y;
                re3(i, 
            2, n) {
                    
            if (l == s) {
                        
            if (r == s) {s += s + 1; l++;} else r++;
                    } 
            else l++;
                    F[i] 
            = F[l] * F[r] % MOD; F[i] = F[i] * A[i - 1% MOD;
                    exgcd(A[l], MOD, x, y); F[i] 
            = F[i] * x % MOD; if (F[i] < 0) F[i] += MOD;
                    exgcd(A[r], MOD, x, y); F[i] 
            = F[i] * x % MOD; if (F[i] < 0) F[i] += MOD;
                }
                res 
            = F[n];
            }
            void pri()
            {
                cout 
            << res << endl;
            }
            int main()
            {
                init();
                prepare();
                solve();
                pri();
                
            return 0;
            }

            Feedback

            # re: 【AHOI2013復(fù)仇】ZJOI2010 Perm 排列計(jì)數(shù)  回復(fù)  更多評論   

            2014-06-24 00:05 by tankche2
            數(shù)據(jù)加強(qiáng)后您的程序好想在bzoj上被卡掉了
            成人a毛片久久免费播放| 香蕉久久久久久狠狠色| 国产成人综合久久精品红| 91精品国产高清久久久久久国产嫩草 | 精品久久久久久综合日本| 久久天天躁狠狠躁夜夜躁2014| 久久丝袜精品中文字幕| 久久久久18| 久久毛片一区二区| 亚洲乱码精品久久久久..| 人妻精品久久无码专区精东影业| 亚洲∧v久久久无码精品| 久久久亚洲欧洲日产国码二区| 久久无码人妻一区二区三区午夜 | 久久99精品久久久久久噜噜| 一本伊大人香蕉久久网手机| 久久99精品久久久久久水蜜桃| 久久久久无码中| 久久精品国产亚洲AV香蕉| 亚洲午夜久久久久久噜噜噜| 色综合久久无码中文字幕| 国产国产成人精品久久| 国产精品美女久久久免费 | 色婷婷噜噜久久国产精品12p| 久久精品三级视频| 亚洲国产精品久久电影欧美| 久久精品国产亚洲AV无码娇色| 精品国产一区二区三区久久| 精品久久久久久无码中文野结衣| 久久精品中文字幕第23页| 亚洲αv久久久噜噜噜噜噜| 精品国产VA久久久久久久冰| 久久精品人妻一区二区三区| 亚洲精品tv久久久久久久久| 亚洲天堂久久精品| 精品久久久久久国产| 久久午夜电影网| 亚洲精品乱码久久久久久蜜桃不卡| 久久久久久综合一区中文字幕| 久久精品视频一| 国内精品伊人久久久久网站|