2018牛客網暑期ACM多校訓練營第一場

2022-02-27 08:22:58 字數 1185 閱讀 4633

將矩陣看作乙個鄰接矩陣,於是問題轉化成了:請計算有多少個無向圖滿足所有點的度數都為2

則圖應該是有若干個環組成,dp[i]表示有i個點的圖的個數,然後可以列舉最後乙個點所在環轉移

\(x_i\)表示燈\(i\)是亮否

求\(e(sum(x_i)^3) = e(\sum x_i x_j x_k)=\sum p(x_i x_j x_k)\)

上面將3次方展開得後式

開關矩陣\(a_\) 對於任意三個燈泡\(x,y,z\)對應矩陣三列\(a_ a_ a_\) 得到n*3的矩陣\(b_\) 則使的x,y,z都為亮著的概率就是從b矩陣行中任取子集使每列異或和為0的概率,子集共有\(2^n\)種,矩陣中的線性無關的行向量總能張成與先行相關向量異或為0的向量,設矩陣的秩為r,則概率就是\(\frac}} = \frac\)

因為行秩等於列秩,而只有三列,只需要求列秩,列舉即可秩為0,1,2的情況即可

圖同構,考慮列舉點的對映關係,暴力判斷

定義dp[i] 代表長度為i的子串行個數。

pre[i][j] 記錄長度為i,以j數字結尾的子串行個數。

轉移時對於i,列舉dp[j] +dp[j - 1],此時重複情況為pre[a[i]][j]減去

不斷更新pre,pre[a[i]][j] = dp[j - 1];

求\(\sum_^\sum_^...\sum_^ \sum max\)

將a排序,對於\(a_< x <= a_i\),

對於\(a_1 到a_\)可與隨便選,方案數為\(\prod_^a_i\)

對於\(a_i到a_n\),當 \(a_ + 1< x <= a_i\) 需要保證\(a_i到a_n\)中至少乙個為x,容斥得方案數\(\sum_^c_^ (-1)^ * x^ =x^ -(x - 1)^\) 總方案數為前後兩部分乘積

則對於x的答案為\((\prod_^a_i)* \sum_^ x * c_^ (-1)^ * x^ =x^ -(x - 1)^\)

對於後半部分另

$g(a_i) = \sum_ ^ x*(x^-(x - 1)^) $

則後半部分為\(g(a_i) - g(a_)\)

對於\(g(a_i)\)最高項為\(n - i\)則其對應乙個\(n - i + 1\)的多項式,只需要求出\(n-i+2\)點值後插值可得到\(g(a_i)\)

斯坦納樹

等會寫treedp+斜率優化

等會寫莫隊暴力

牛客網暑期ACM多校訓練營(第九場)

做法 看到下標 xor 這種情況就想 fwt 可是半天沒思路,於是放棄了。其實這個 n 瘋狂暗示啊。設未知數向量為 x 列一下方程組就可以發現有 b k sum a i x j 做法就顯然了吧,把 a 和 b 分別 fwt 對應相除然後反變換即可。表示前天才學的 fwt 就不會使了。include ...

牛客網暑期ACM多校訓練營(第五場)

二分答案,然後就轉化為是否滿足 frac d sum s i c i sum s i d sum s i c i d 0 顯然科目越少gpa越高,於是去掉最小的k個判斷即可。include define rep i,a,b for int i a i b i define per i,a,b for...

牛客網暑期ACM多校訓練營(第二場)

a run 基礎dp,直接做就行了。dp時候求出來到哪個距離有幾種走法,然後求一下字首和。輸出答案的時候減一下就行了。include include include include include include include include using namespace std define ...