牛客練習賽73 C 生涯回憶錄 組合數學

2021-10-19 07:45:45 字數 820 閱讀 1410

傳送門

考慮列舉貢獻為i

ii的方案數有多少種

貢獻為i

ii,那麼[1,

i−1]

[1,i-1]

[1,i−1

]每種數字至少都選了乙個

至少選乙個只需要所有可能減1

11就好了

這部分方案數是∏j=

1i−1

(2vi

s[j]

−1

)\prod\limits_^(2^-1)

j=1∏i−

1​(2

vis[

j]−1

) 然後大於等於i+1

i+1i+

1的數字任選,算乙個快速冪即可

#include

using

namespace std;

#define int long long

const

int maxn =

1e6+10;

const

int mod =

20000311

;int n,vis[maxn]

,ans;

intquick

(int x,

int n)

signed

main()

int sum =

0,res =1;

for(

int i=

1;i<=n+

1;i++

) cout <<

(ans%mod+mod)

%mod;

}

牛客練習賽73 C 生涯回憶錄 題解

簡要題意 給定乙個集合,求集合裡面每乙個子集的 mex。這裡定義乙個集合的 mex 為這個集合最小的沒有出現的數 考慮乙個數作為 mex 在幾個子集裡面出現,首先它能成為 mex 需要小於它的自然數都至少出現乙個,也就是它必須小於等於給定的集合的 mex。列舉每乙個 mex,記錄每個可能稱為 mex...

牛客練習賽 生涯回憶錄(dfs,組合數,思維)

題意 給定n 1e5個數字,求所有區間的mex值之和。題解 很模板的一道題目了,我怎麼就想了那麼久?第一題都錯了5發,看來我還是不夠平常心對待比賽emmmm。唉什麼時候才能懂得?1.討論不選1 選1 不選2 選2 唉,遞迴就遞迴,怎麼就盲目遞迴,明知道是 錯了 討論方式總數的地方 仔細一思考就出來了...

牛客練習賽73

傳送門 思路 本題有兩種方法,一是模擬,將所有人的總分算出來後進行排序,只要小a考到第m個人的分數那麼就可以,但資料有坑,減去校測分後得到的可能是負數,即意味著小a只需要考0分即可。二是正解,題目要求找乙個數就可以聯想到二分,對於小數操作就可以放大為整數,就是mid85 p15,然後將資料型別擴充套...