atcoder D 11(組合數學)

2022-05-16 21:11:53 字數 1104 閱讀 9569

題解:有n+1個數只有乙個數字是有重複出現的,要求一共有多少不同的組合顯然和這兩個數的位置有關係,具體看一下**就能理解了

就是組合數學看一下**就好理解了,這題比較簡單不多加解釋。

#include #include #include #include #define mod 1000000007

using namespace std;

const int m = 1e5 + 10;

typedef long long ll;

int a[m];

bool vis[m];

ll up[m] , down[m] , up2[m] , down2[m];

ll inv(ll a)

int main()

else

}for(int i = 1 ; i <= n + 1 ; i++)

}int num = n - pos2 + 1;

int num2 = pos1 - 1;

num += num2;

up[0] = 1 , down[0] = 1 , up2[0] = 1 , down2[0] = 1;

n++;

for(int i = 1 ; i <= n / 2 ; i++) up[i] = up[i - 1] * (n - i + 1) % mod , down[i] = down[i - 1] * i % mod;

for(int i = n / 2 + 1 ; i <= n ; i++) up[i] = up[n - i] , down[i] = down[n - i];

for(int i = 1 ; i <= num / 2 ; i++) up2[i] = up2[i - 1] * (num - i + 1) % mod , down2[i] = down2[i - 1] * i % mod;

for(int i = num / 2 + 1 ; i <= num ; i++) up2[i] = up2[num - i] , down2[i] = down2[num - i];

for(int i = 1 ; i <= n ; i++)

else

}return 0;

}

數學2 2 組合數學與計數

洛谷的專題qwqqqqq 亂序按心情做也不一定做得完 三分鐘熱度就有三分鐘的收穫 但是我永遠喜歡演算法 組合數學的靈魂大概就是原公式和3條性質叭qwq 混亂發言 還有個二項式定理 lucas定理和catalan數來著 藍皮書上有,此處不多加贅述。思路 因為資料範圍較小,但是詢問次數較多,所以可以先預...

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

POJ 1850 1496 組合數學

poj 1496 word index poj 1850 code 題意 1.每個詞是自增的 2.同樣長度的詞是按字典序排練的 3.我們把這些詞標序 求某個詞的序號 分析 組合數學.推出公式然後用楊輝三角打錶出組合數,具體看 我還是太弱orz.1496 author illuz file 1496....