原创 [隊內測試Day10.22T1][bzoj1821]部落劃分 Group

題目← 考場思路: 二分+最小生成樹驗證,明顯添的邊越多分成的組就越少,滿足單調性 考場zz的把數組開了1000,直接卡到20pts 還有一種思路: 最小生成樹 發現在不添邊的時候,圖中有n個獨立集合 每成功加進去一條邊

原创 [隊內測試Day10.22T3][codevs1684]垃圾陷阱

題目← 考試的時候沉迷T4而忽略掉的DP題 也是該複習DP了…… 摸魚: 設dp[i][j]爲第i個物品在時間爲j時的最大高度 轉移更直觀一些 dp[i][j] = dp[i - 1][j - l[i].t];//吃 d

原创 [vijos1292]火車票

題目← 序列型,水題 數據範圍坑,需要開long long 題目裏明確說兩站之間只能用一張票,那與當前站距離大於L3的站直接break掉就好了 #include<iostream> #include<cstdio> #incl

原创 [洛谷P1378]油滴擴展

題目← 題面裏講述的題意很明白 一開始wa掉到的點:1、有的點會在沒擴展前就被覆蓋掉; 2、x,y都要取min(zz錯誤) #include<iostream> #include<cstdio> #include<algori

原创 [vijos1232]核電站問題

題目← 大概需要更多方案數這方面DP的練習…… 題意:在n個位置放 <= m個核電站,有多少种放法使最長連續核電站數 <= m dp[i][j]定義:以第i個核電站爲終點,最放連續j個核電站的方案數 這樣若j位置連續大於等於1

原创 [洛谷P3962]浮游大陸的68號島

題目← 兩次前綴和來解決,式子並不難推 將二次前綴想像成三角形會比較好理解 需維護: 1、距離前綴; 2、總價值(運費)前後綴; 3、個數前後綴; 具體式子詳見代碼 比較噁心的是取模意義下隨時會有負數,並不太會處理,求大

原创 [vijos1235]天堂的饋贈

題目← 狀態定義很顯然的DP題 設dp[i][j]爲第i秒位於位置j所能獲得的最大禮物價值 這樣dp[i][j]可以由dp[i - 1][j - 1],dp[i - 1][j],dp[i - 1][j + 1]推來 一開始怎麼

原创 [洛谷P1902]刺殺大使

題目← 總覺得spfa一臉可做的樣子然而過不了 於是乖乖打了二分+驗證 #include<iostream> #include<cstdio> #include<queue> #include<cstring> #include

原创 [vijos1907][codevs3729]飛揚的小鳥

題目← n <= 10000,m <= 1000,湊成10^7剛好 所以設dp[i][j]爲到位置i高度j的最小步數 一個顯然的轉移是dp[i][j] = min(dp[i - 1][j - h[i][0]],dp[i - 1

原创 [隊內測試Day10.22T4][洛谷P2680]運輸計劃

題目← 吐槽下考場上的魔改題面…… 看出來是運輸計劃後,記得以前聽說過是二分,於是開始摸魚…… 不會樹鏈剖分,考場上卡掉一個點 儘管實現步驟很麻煩,但思路清晰的話,具體打起來還是比較容易的一道題 能摸出來大概是人品比較好…

原创 [隊內測試Day10.24Final]逆序對+表達式計算+貪心+圖論+數論?

T1 #include<cstring> #include<cstdio> #include<algorithm> #include<iostream> #include<map> #define L(w) w << 1 #def

原创 Mark待練習的東西

trie樹; ST表; 概率和期望; 劃分/區間型DP; codevs5251 poj1742多重揹包可行性 點贊 收藏 分享 文章舉報 LOI_pingxin

原创 [隊內測試Day10.26][P97]T1 字符串+前綴和

大意: 給定一字符串,定義權值爲串中出現次數最多字符 - 出現次數最少字符,求權值最大子串 字符串長度 n <= 10^6,保證都由小寫字母組成 考完試悔的腸子都青了的題…… 明明離正解那麼近了…… 考場思路: 發現

原创 [模板]kmp[poj3461][codevs5757]

codevs5757 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int

原创 [模板]ST表

題目← 可以O(1)的解決RMQ問題 不過不支持修改 基本基於DP,以最大值爲例,st[i][j] = max(st[i][j - 1],st[i + (1 << j - 1)][j - 1]); #include<iostream>