原创 子串問題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