原创 能力提升綜合題單 Part 8.3.3 最近公共祖先

兩個點的最近公共祖先,即兩個點的所有公共祖先中,離根節點最遠的一個節點。 求解最近公共祖先,常用的方法是樹上倍增或者樹鏈剖分。 P3379 【模板】最近公共祖先(LCA) P3938 斐波那契 P4281 [AHOI2008]緊

原创 能力提升綜合題單Part 8.2 最短路問題

P5905 【模板】Johnson 全源最短路 P1144 最短路計數 P1462 通往奧格瑞瑪的道路 P1522 [USACO2.4]牛的旅行 Cow Tours P1266 速度限制 P4001 [ICPC-Beijing

原创 能力提升綜合題單Part 8.1 圖的存儲與遍歷

Part 8.1 圖的存儲與遍歷 這裏的圖論內容都比較簡單,涉及圖的存儲以及遍歷圖的方式。 好騙! 還好不是剛學圖論,不然要究極自閉了 1.P2661 信息傳遞 看似像個憨批題 其實T到哭 求最小強連通分量 #include<b

原创 能力提升綜合題單Part 8.3.1 二叉樹&Part 8.3.2 樹的直徑

P1087 FBI樹 P1030 求先序排列 P1305 新二叉樹 P1229 遍歷問題 P5018 對稱二叉樹 P5597 【XR-4】復讀 P2195 HXY造公園 P3629 [APIO2010]巡邏 P5536 【XR-

原创 牛客 動物森友會(最大流+二分)

鏈接:https://ac.nowcoder.com/acm/problem/205306 來源:牛客網 Compute 最近開始玩動物森友會了。 這個遊戲的時間與現實時間是同步的(一週有 7 天),而一些特定事件只會在一週的某些

原创 刷題記錄 CF每日一題打卡 2020.6月7-6月13

1.CF1263D Secret Passwords 並查集,每個字符串跟它的首字母連邊,最終輸出聯通塊數量 #include<bits/stdc++.h> using namespace std; int t,n,m; int

原创 刷題記錄 kuangbin帶你飛專題九:連通圖

這個專題實屬虐心…各種debug搞到自閉 不過進步就是在自閉中產生的… 後面被反向邊逼迫使用了鏈式前向星建圖(雙修?) 1.POJ 1236 Network of Schools 任務一:求出入度爲0的連通分量數量 任務二:求加多

原创 刷題記錄 kuangbin帶你飛專題六:最小生成樹

全是憨批題的專題 可能是爲了在並查集之後給人恢復信心 簡略寫一下 1.POJ 1251 Jungle Roads 模板題,把字母轉化爲數字 #include <iostream> #include <cstring> #inclu

原创 算法筆記:tarjan算法求強連通分量&割點&橋

強連通分量:其實就是個環 割點:把這個點去掉可以使圖不連通 tarjan算法求強連通分量的思路:在dfs過程中有兩個數組 low 和dfn 分別代表dfs中被搜索到的次序,以u爲根的子樹中的最小dfn。對於每一個點,如果它的dfn

原创 算法筆記:Dinic最大流和SPFA費用流

dinic求最大流 複雜度m*n^2 個人對反向邊的存在的理解:當沒有流到最優路線的時候,給一個反悔的機會 增廣路:從s到t的一條路徑 正向邊流量全部不滿capacity 反向邊的流量全部>0,跑了可以使最大容量增加,dinic就

原创 刷題記錄 kuangbin帶你飛專題五:並查集

由於在學帶權並查集的過程中不斷的自閉,決定分步寫這個專題的題解 1.POJ 2236 Wireless Network 普通並查集,把點亮的網絡跟每一個距離內的連通 #include <iostream> #include <cs

原创 洛谷P1990 覆蓋牆壁(遞推)

開始刷kuangbin數學專題發現沒有數學基礎完全刷不動… 於是決定先把洛谷的一些基礎刷完 然而數學&DP方面就學了一點點,基礎實在太爛 補題補題補題 有 I 型和 L 型的磚,問鋪滿2*n的牆壁有多少種方法 典型的遞推 f[n

原创 刷題記錄 kuangbin帶你飛專題四:最短路練習

寫之前先給這個專題做個總結 知識點:單源最短路,全源最短路,求最短路中的最長邊,bellman ford算法求有負權的最短路,bellman or SPFA判斷環,反向建圖,差分約束,層次圖建立層點(連通點)。 應該是覆蓋最短路所

原创 刷題記錄 kuangbin帶你飛專題一:簡單搜索

兩天肝完 感覺自己的暴力水平上升了 碼力大仙!!! A.POJ1321 棋盤問題 有一個坑點就是可能相鄰層沒有棋盤,所以直接搜全部 #include<cstdio> #include<iostream> #include<cstr

原创 **算法筆記-差分和前綴和**

算法筆記-差分和前綴和 差分 就是將數列中的每一項分別與前一項數做差,例如: 一個序列1 2 5 4 7 3,差分後得到1 1 3 -1 3 -4 -3 差分求前綴和=原序列 將原序列區間[L,R]中的元素全部+1,可以轉化操作爲