傳送門
考慮列舉貢獻為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,然後將資料型別擴充套...