數論 逆元,錯排 P4071排列計數

2022-05-05 16:12:07 字數 647 閱讀 1165

題目描述

求有多少種長度為n的系列a,滿足以下條件:

1~n這n個數在序列中各出現一次;若第i個數a[i]的值為i,則稱i是穩定的。序列恰有m個數是穩定的。

輸出序列個數對1e9+7取模的結果。

顯然是從n個數中選m個數穩定,剩下的錯排。答案即為:\(c^m_n * d[n - m]\)

\(c^m_n = \frac = n! * (m!)^ * ((n - m)!)^,p = 1e9 +7\)

\(d[n] = (n - 1) (d[n - 1] + d[n - 2])\)

#include #include using namespace std;

inline long long read()

const int mod = 1e9 + 7;

const int maxn = 1000006;

int t, n, m;

long long d[maxn], c[maxn];

inline long long pow(long long a, long long k)

return x;

}int main()

return 0;

}

P4071 SDOI2016 排列計數

求有多少種長度為 n 的序列 a,滿足以下條件 1 n 這 n 個數在序列中各出現了一次 若第 i 個數 a i 的值為 i,則稱 i 是穩定的。序列恰好有 m 個數是穩定的 滿足條件的序列可能很多,序列數對 109 7取模。輸入格式 第一行乙個數 t,表示有 t 組資料。接下來 t 行,每行兩個整...

題解 P4071 SDOI2016 排列計數

題目鏈結 題目大意 問有多少個 1 n 的排列 a 恰好有 m 個數滿足 a i i 錯排,計數 分析 首先我們選 m 個數有 c n m 種,那麼我們要求答案合法就必須使得剩下的數都不滿足 a i i 也就是我們要求 n m 個數錯排的方案數,假設 d n 表示 n 個數錯排的方案數,我們的答案就...

洛谷 P4071 SDOI2016 排列計數

簡化版題意 1 n n個數字,問滿足m個ai i的排列個數 答案對1e9 7取模 這題就是道裸題,不知道為啥還能是藍的 前置技能一 快速冪 太簡單了不講了 這週和矩陣的知識點一起寫 前置技能二 錯排公式 顧名思義錯排就是ai i的排列個數,高中應該都學過 下面是推理過程 我們設f n 代表n個數的錯...