原创 AcWing 366. 看牛

題目鏈接:傳送門 要求每條邊只被經過一次,而且是雙向邊 那直接對每條邊記一個vis然後dfs即可 #include <bits/stdc++.h> #define A 100010 using namespace std; st

原创 ZR #1188. 【線上訓練 15】字符串

題目鏈接:傳送門(沒買的看不了) 暴力的話就是枚舉AAA的子串,判斷BBB是不是這個子串的子序列,是Θ(n2m)\Theta{(n^2m)}Θ(n2m)的 然後考慮枚舉左端點計算右端點的貢獻 先枚舉一個左端點lll,如果一個右端點

原创 Comet OJ C1412 [HAOI2006]均分數據

題目鏈接:傳送門 隨機貪心,random_shuffle一個aaa序列 開一個數組fff表示分的mmm組 每次找一個最小的fff加上當前的aaa 意思就是讓fff數組儘可能平均,最後的均方差也就會小 由於nmnmnm比較小,做上幾

原创 LOJ #10180. 「一本通 5.5 練習 1」烽火傳遞

題目鏈接:傳送門 設f[i]f[i]f[i]表示處理到第iii個位置的最小花費 很明顯轉移要從iii之前的mmm個位置轉移過來 就是f[i]=min(f[i],f[j]+a[i])(max(1,i−m)≤j<i)f[i]=min(

原创 ZR #1190. 【線上訓練 15】生成樹

題目鏈接:傳送門(沒買的看不了) nnn小的一批,狀壓欽定 設f[S][i]f[S][i]f[S][i]表示點的SSS集合且根節點爲iii的最小w(T)w(T)w(T)值,當然iii一定在SSS內 轉移的時候枚舉SSS的一個子集T

原创 ZR #1173. 【線上訓練 12】圖論

題目鏈接:傳送門(沒買的看不了) 很明顯這個KKK可以二分,因爲要求度數儘量小滿足條件的最大的KKK,KKK越小越能滿足條件 那麼就二分一個KKK,看能不能在KKK的限制下將圖補成完全圖 要把這個圖變成完全圖的話,n∗(n−1)/

原创 ZR #1179. 【線上訓練 16】舔到

題目鏈接:傳送門(沒買的看不了) 又是這種樹上博弈,在ZR看到好多這種T1了 雖然難度沒那麼大但做完總是覺得不穩妥 把當前樹的集合分成兩種情況,一個是所有節點入度都是奇數,一個是有的節點入度是偶數 這兩個狀態間一定可以互相轉移,因

原创 ZR #1176. 【線上訓練 14】面積

題目鏈接:傳送門(沒買的看不了) 真的琢磨了好久好久 暴力很顯然,枚舉所有選出kkk個點的情況然後叉乘計算面積 求出所有可能的面積之後除以情況個數就是期望面積 比賽的時候只能想到這樣了 #include <bits/stdc++.

原创 ZR #1196. 【線上訓練 18】排隊

題目鏈接:傳送門(沒買的看不了) 維護隊伍中的人的一個班級序列,就是班級相同且相鄰的人在一個塊內 這樣分塊的話,一個人插進來的時候只能是在隊尾新開一個塊或者是插到前面一個塊內 所以這個塊的序列只會在末尾添加新的元素而不會在中間加入

原创 vector的常用操作詳解

主要記錄一些比較常見的用法 vector的插入 v.push_back(x) 往vector的末尾插入一個元素x 只有一個參數時只能用push_back不能用insert vector的insert幾種攜參用法中並沒有一個參數的

原创 ZR #1154. 【線上訓練 5】染色

題目鏈接:傳送門(沒買的看不了) 一個環一定是不合法的 因爲環中一定有點有兩條出邊,那就是去掉環把這個圖變成一個森林 所以對一個聯通塊來說要去掉一個生成樹的邊量 這個圖不一定聯通,需要刪掉的邊就是m-n+聯通塊個數 #includ

原创 ZR #1175. 【線上訓練 14】遊戲

題目鏈接:傳送門(沒買的看不了) 很思維,有點樹形dp的影子 顯然小Y不會向根節點走,因爲小Y的目標是葉子節點,向根節點走一定不優 因此,我們可以對於每個子樹進行考慮,設f[u]f[u]f[u]表示小Y的棋子在uuu時,如果只考慮

原创 AcWing 245. 你能回答這些問題嗎

題目鏈接:傳送門 線段樹單點修改+查詢最大子段和 一邊寫對? 只不過忘了改數組大小沒看到x>yx>yx>y而已 維護區間和www,區間最大子段和fff,從左端點開始的最大子段和lflflf,從右端點開始的最大子段和rfrfrf w

原创 AcWing 246. 區間最大公約數

題目鏈接:傳送門 一段區間的gcdgcdgcd可以用線段樹維護,這裏不直接做是因爲有區間修改,暴力維護複雜度很高 gcd(a,b,c)=gcd(b,b−a,c−b)gcd(a,b,c)=gcd(b,b-a,c-b)gcd(a,b,

原创 Luogu P3622 [APIO2007]動物園

題目鏈接:傳送門 設f[i][s]f[i][s]f[i][s]表示從處理到iii這個圍欄且從iii開始的五個圍欄狀態爲sss的最多小朋友數 一定可以從f[i−1]f[i-1]f[i−1]轉移過來,只需要再考慮當前多出來的這個圍欄的