bzoj2111 Perm 排列計數 組合數學

2021-07-10 03:05:57 字數 542 閱讀 9290

一開始以為當i為奇數時不需要pi>pi/2,翻了一下題解發現/2是整除。。。然後這實際上就是求一顆節點數為n的大根堆有多少種。定義f[i]為這可樹種以i為根的子樹的方案數,s[i]表示子樹的節點數,那麼考慮s[i]個數,一定是將最小的給i,剩餘的s[i<<1]個給左兒子,這s[i<<1]個可以隨機取,因此共有c(s[i]-1,s[i<<1])種,因此得到:

f[i]=f[i<<1]*f[i<<1|1]*c(s[i]-1,s[i<<1]),最後f[1]位答案。注意邊界。

ac**如下:

#include#include#define n 2000005

#define ll long long

using namespace std;

int n,p,f[n],s[n],fac[n],inv[n];

int solve(int x,int y)

printf("%d\n",f[1]);

return 0;

}

by lych

2016.2.24

bzoj2111 perm 排列計數

記憶體限制 512 mib 時間限制 1000 ms 標準輸入輸出 題目描述 稱乙個1,2,n的排列p1,p2.pn是magic的,當且僅當2 i n時,pi pi 2.計算1,2,n的排列中有多少是magic的,答案可能很大,只能輸出模p以後的值 輸入格式 輸入檔案的第一行包含兩個整數 n和p,含...

bzoj2111 Perm 排列計數

稱乙個1,2,n的排列p1,p2.pn是magic的,當且僅當2 i n時,pi pi 2.計算1,2,n的排列中有多少是magic的,答案可能很大,只能輸出模p以後的值 input 輸入檔案的第一行包含兩個整數 n和p,含義如上所述。output 輸出檔案中僅包含乙個整數,表示計算1,2,的排列中...

Perm排列計數(bzoj2111)

time limit 10 sec memory limit 259 mb submit 2686 solved 811 submit status discuss 稱乙個1,2,n的排列p1,p2 pn是magic的,當且僅當2 i n時,pi pi 2.計算1,2,n的排列中有多少是magic的...