原创 0302模擬賽

T1 直接搜索出來字符串的最小表示法,然後排列計算一下。 #include <bits/stdc++.h> using namespace std; const int mod = 1e9 + 7; typedef long l

原创 0228模擬賽

T1 #include<bits/stdc++.h> using namespace std; const int MAXN = 4505; const int mod = 998244853; int n, a[MAXN],

原创 0301模擬賽

T1 #include <bits/stdc++.h> using namespace std; inline void read(int &x) { char ch; while(!isdigit(ch=getchar()

原创 0513 模擬賽 1.FMT 2.分治NTT 3.毒瘤樹剖套線段樹+可刪除堆

T1 可以發現每個果子的貢獻係數是一個組合數,然後由於是異或,只需要求此組合數的奇偶性。組合數長這樣(d+t−1d)\binom{d+t-1}{d}(dd+t−1​),ddd表示該果子深度(從0開始)。 由lucas定理知(nm

原创 0225模擬賽

T1 直接按照定義推式子,就可以用矩陣加速優化。 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int mod = 998244

原创 0226 模擬賽

T1 #include <bits/stdc++.h> using namespace std; inline void read(int &x) { char ch; while(!isdigit(ch=getchar()

原创 BZOJ 4036 [HAOI 2015] 按位或

題面 剛開始你有一個數字000,每一秒鐘你會隨機選擇一個[0,2n−1][0,2^n-1][0,2n−1]的數字,與你手上的數字進行或操作。選擇數字iii的概率是p[i]p[i]p[i]。保證0≤p[i]≤10\le p[i]\l

原创 0607模擬賽 隨機除法(div) 炮塔(tower) 最大子段和

A.隨機除法(div) 題面 題解 因爲n很大,所以手寫高精。 然後代碼中前綴和數組的定義與上面的題解有一點不一樣(而且上面的題解好像把jjj寫成iii了)。含義如下 sum[e][i]=∑e′(∏j<i[ej′=ej]∏

原创 CF600E Lomsat gelral(虛樹做法)

題目 n≤105n\le 10^5n≤105。 題解 另有dsu on tree\texttt{dsu on tree}dsu on tree的解法。 我寫的是虛樹的做法。對於每種顏色建虛樹,然後在虛樹上求一次子樹size,然後

原创 LOJ 6053 時間複雜度 min25篩

求 fff 前 nnn 項的和對 201906012019060120190601 取模的值。 1≤n≤10111\le n\le 10^{11}1≤n≤1011。 考慮 min_25 篩中的 g0(n,j)g_0(n,j)g0​

原创 0603模擬賽 解碼 排列 安排

A 解碼 題囬 題解 有xc≡m (mod n)x^c\equiv m\ (mod\ n)xc≡m (mod n),且ccc與(p−1)⋅(q−1)(p-1)\cdot (q-1)(p−1)⋅(q−1)互質。 發現φ(n)=(

原创 2020 CQ省選退役記

Day0 考試就在我們學校考… 下午還被拉去軍體拳比賽舞旗。(實際上前兩天都有被拉去訓練) 晚上教練說就不回家了,在學校自習。然後有位巨佬溜了…其他人上到10點也溜了。只有我一個人是住讀,10:50溜回寢室睡覺。 大概11:40睡

原创 0522模擬賽 A. 求和 B.農民(farmer) C.仙人掌

A. 求和 求模s直接順着遞推。 求模2的次冪用倒推。 #include <bits/stdc++.h> using namespace std; const int MAXN = 1000105; int n, m, K;

原创 0601題目 (矩陣樹定理、2-sat、prufer序列)

A. Stranger Trees 題面 給定一棵有nnn個節點的無根樹 求對於這nnn個點,以及每個k=0,1,2...n−1k=0,1,2...n-1k=0,1,2...n−1,有多少棵由這n個點構成的帶標號無根樹,與給定的樹

原创 烷烴計數 (分治NTT 生成函數 無標號無根樹計數)

TQL,我TM\color{white}{TM}TM直接膜拜。神犇Master.Yi的博客