Loj 6077 容斥 逆序對

2021-09-27 07:51:29 字數 1169 閱讀 1875

題意:給你n,k

求長度為n的排列,逆序對個數為k的方案數

n ,k

⩽105

n,k\leqslant 10^5

n,k⩽10

5答案 mod 10^9+7

解法:下面說根號的解法

首先,這相當於求∑ai

=k(0

⩽a

i

\sum a_i=k(0\leqslant a_i∑a

i​=k

(0⩽a

i​的解容斥以後

如果超過k

\sqrt k

k​個數超過,顯然不可能

考慮不超過k

\sqrt k

k​個數超過

令b i=

ai−i

(ai≥

i)或a

ib_i=a_i-i(a_i\geq i)或a_i

bi​=ai

​−i(

ai​≥

i)或a

i​那麼相當於要求k-x的拆分*x拆分成若干個i的和的方案數

dp最後乘上容斥係數即可

#include #include #include #include using namespace std;

const int mod = 1000000007;

#define maxm 450

#define maxn 200010

int f[maxm][maxn];

int n, m;

int fact[maxn << 1], inv[maxn << 1];

inline int c(int i, int j)

int main()

if (j >= n + 1)

f[i][j] = (f[i][j] + f[i - 1][j - n - 1]) % mod;

}int ans = 0;

for (register int i = 0; i <= m; ++i)

printf("%d\n", ans);

return 0;

}

有多項式的做法,另一道題裡面講吧

我將開乙個多項式學習小記的部落格

長期記錄

LOJ 3120 珍珠 容斥 生成函式 NTT

求 有多少種序列滿足 a i subseteq 1,d 且 m leqslant sum frac 裸做的話就是乙個揹包 f i j 表示前 i 個數匹配了 j 對的方案數,然後由於沒有匹配的肯定是單個出現,所以轉移的話比較容易.再加上幾個點的特判,和不知道能不能過的矩陣乘法,大概能拿 72 分.然...

容斥原理,容斥係數

眾所周知,容斥原理是計數問題中最雞賊的東西 基本上很多計數問題都要用到容斥,但是有的時候你明明知道要容斥就是不知道怎麼容斥 所以特此寫在這裡總結一下 一般來說,這種容斥原理一般有n個性質,滿足第 i 個性質的元素集合為 a i 還有乙個全集 u 現在我們需要統計 ans u bigcap overl...

Cheerleaders(容斥定理)

題意 在乙個m行n列的矩陣裡站k個拉拉隊員,問有多少種方法,四周邊界必須有乙個隊員.這裡用到組合數加容斥定理,將重複的刪除,第一行,最後一行,第一列,最後一列.用到位運算來模擬16種情況.這裡要吐槽一下,中英文輸入法,和case中c的大小寫,wrong了無數次,最後才發現,蛋疼.include in...