原创 子串問題2

題目鏈接:子串問題2 考慮以每個點作爲右端點的最長子串長度。 即不包括最近的一個連續3個相同的字符串。 AC代碼: #pragma GCC optimize("-Ofast","-funroll-all-loops") #in

原创 Codeforces - 偶樹的切分

題目鏈接:Codeforces - 偶樹的切分 顯然貪心,能切就切。 AC代碼: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++

原创 Codeforces - Fountains

題目鏈接:Codeforces - Fountains 做法挺多的。 直接枚舉當前選的一個,然後另一個從前面選即可。 然後動態維護前綴max,Fenwick tree即可。 注意要麼不選,要麼就要選2個。 AC代碼: #pra

原创 Codeforces - Royal Questions

題目鏈接:Codeforces - Royal Questions 顯然是一個帶權二分圖的模型,但是複雜度過高。 但是這張圖很特別,每個點必連兩個點,我們把這個點當成邊,那麼就是找一個最大基環森林了。 每次保證當前聯通塊不多於一

原创 Codeforces - Porcelain

題目鏈接:Codeforces - Porcelain 很顯然的dp。 類似於一個分組揹包。 dp[i][j]爲前i組,摔了j次,然後隨便枚舉轉移一下即可。 AC代碼: #pragma GCC optimize("-Ofast

原创 Codeforces - High Cry

題目鏈接:Codeforces - High Cry 我們直接計算不合法的個數,也就是枚舉每個點,當前點作爲最大值的合法區間。 作爲最大值的區間之間正反兩次單調棧即可。 然後上一個異或>now的位置,我們可以對每一個二進制位遞推

原创 Codeforces - Lengthening Sticks

題目鏈接:Codeforces - Lengthening Sticks 正難則反。我們直接計算不合法的方案。 總方案我們可以看成是一個可以放0 的隔板法。 C(x+2,2) 然後不合法的,我們直接看a>=b+c,b>=a+c,

原创 Codeforces - Yaroslav and Points

題目鏈接:Codeforces - Yaroslav and Points 顯然我們如果維護每個區間的x座標之和,以及個數。 那麼答案就是可維護的。 顯然線段樹區間合併的時候,只需要考慮每個右邊點對於左邊的貢獻。 因爲區間很大,

原创 Codeforces - Bookshelves

題目鏈接:Codeforces - Bookshelves 顯然可以按位貪心。 然後dp[i][j],前i個能否組成j組,包含當前枚舉的某一位。 但是要注意也要包含之前貪心出的答案。 AC代碼: #pragma GCC opt

原创 Codeforces - Longest Subsequence

題目鏈接:Codeforces - Longest Subsequence 我們考慮每個數字作爲LCM的最大值即可。 然後對於每個元素,只對他的倍數有貢獻。 AC代碼: #pragma GCC optimize("-Ofast

原创 Codeforces - Alternating Tree

題目鏈接:Codeforces - Alternating Tree 做法很顯然,就是看每個點的貢獻。 然後就是看作爲鏈上奇數位置,和偶數位置的貢獻。 這個我們直接看子樹到外面,和外面到子樹分別計算即可。 AC代碼: #pra

原创 Codeforces - Nastya and King-Shamans

題目鏈接:Codeforces - Nastya and King-Shamans 顯然,每次 * 2倍增最多進行log次,所以我們在線段樹上二分,找到第一個 2 * a[i] 的位置即可。 然後線段樹維護前綴和的max AC

原创 3 Steps

題目鏈接:3 Steps 顯然我們可以發現,如果一個圖中有奇環,那麼最後會變成一個完全圖。 否則就是一個二分圖,左右互相連邊。 AC代碼: #pragma GCC optimize("-Ofast","-funroll-all

原创 Delight for a Cat

題目鏈接:Delight for a Cat 我們首先把全部都看成睡覺,那麼對於玩遊戲的費用就是 b[i]-a[i] ,然後每個區間玩遊戲選擇的個數就是已知的。然後我們可以發現,這個是一個線性規劃的形式,由於要輸出具體方案,所以

原创 HDU - 4560

題目鏈接:HDU - 4560 顯然可以二分最大次數。 然後因爲把歌曲分爲喜歡點和不喜歡點,不喜歡點到匯點T限制流量爲K即可。 AC代碼: #pragma GCC optimize("-Ofast","-funroll-all