題目描述
求有多少種長度為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個數的錯...