原创 CF911G Mass Change Queries

題目鏈接:傳送門 線段樹維護每個節點會變成哪個數,直接在每個節點開一個數組記就可以 因爲權值最大才是100 pushdown的時候把標記覆蓋成左右兒子的標記 輸出時遞歸輸出 #include <bits/stdc++.h> #de

原创 歐拉路與歐拉回路 && UOJ #117. 歐拉回路

下面的定義都是個人理解 歐拉路:從一個點走到另外一個點,圖中每條邊都只經過一次 歐拉回路:在歐拉路的基礎上,要求終點和起點相同 歐拉路與歐拉回路的判斷 對於無向圖 只有兩個點的度數是1,這兩個點分別爲起點和終點,則這個無向圖存在

原创 ZR #1195. 【線上訓練 18】圖論

題目鏈接:傳送門(沒買的看不了) 並查集維護聯通性 對每個點開一個setsetset維護不能到達的點 如果兩個點聯通即fa[a]=fa[b]fa[a]=fa[b]fa[a]=fa[b]那麼就直接輸出111 因爲這兩個點既然已經在並

原创 對tarjan縮點/求割點/求橋的理解

不適合初學者,適合複習 縮點 dfn[i]dfn[i]dfn[i]就是一個dfsdfsdfs序。 low[i]low[i]low[i]是iii不通過iii的父親節點能到達的最高(深度最小/dfsdfsdfs序最小)的祖先節點。 上

原创 AcWing 111. 畜欄預定

題目鏈接:傳送門 很明顯的貪心 就是讓一個柵欄儘可能多的放牛 按左端點排序,即每頭牛開始喫草的時間 維護最後一頭牛的喫草結束的時間 如果當前的牛可以跟他拼柵欄,那就拼,否則新開一個柵欄 詳細看代碼註釋 #include <bits

原创 AcWing 346. 走廊潑水節

題目鏈接:傳送門 構造一個完全圖就是每兩個點之間都有一條邊 要使最小生成樹不變那麼多加的邊只能相比原來的邊更大 在構造生成樹時如果兩個點集的大小分別爲siz[x],siz[y]siz[x],siz[y]siz[x],siz[y],

原创 AcWing 395. 分離的路徑

題目鏈接:傳送門 要求兩個點之間至少要有兩條不相交的道路可以到達 那就是說兩個點在一個環內 對於已經在環內的點就不用管了,所以先縮點 再對於縮完點之後的樹,入度爲111的點之間是需要有一條邊的 所以每兩個葉子節點之間連一條邊,多出

原创 Luogu P1129 [ZJOI2007]矩陣遊戲

題目鏈接:傳送門 把111看做是行向列連邊,需要使行列都有一個匹配 交換行列並不會影響這個匹配,只是點的位置變了 所以跑一個最大匹配就可以 #include <bits/stdc++.h> #define A 210 using

原创 AcWing 379. 捉迷藏

題目鏈接:傳送門 DAG的最大獨立集 = 最小路徑覆蓋 最小路徑覆蓋 = 點數 – 最大匹配數 把原圖拆點做做小路徑覆蓋即可 但這個題不用拆點原圖就可以看成二分圖 注意不直接相連的點也算相連 類似於floyed的處理,枚舉中轉點K

原创 各大常見OJ與推薦OJ彙總(OJ題量統計)

這麼長時間了 收集了不少做題的網站 在這裏列一列 可以挑自己各方面都喜歡的主用 並沒有什麼順序 由於各種原因有些網站已經不再維護 我這裏也不好標出來,萬一人家又維護起來了我沒發現怎麼辦 所以大家擇優選擇 Last-Modifi

原创 AcWing 344. 觀光之旅 && 無向圖的最小環

題目鏈接:傳送門 無向圖最小環,floyed來求 普通的鬆弛操作還是有,就是f[i][j]f[i][j]f[i][j]表示從iii到jjj的最短路 題目要求一個最小的環,存下一開始邊的大小d[i][j]d[i][j]d[i][j]

原创 分層圖最短路複習

分層圖可以來解決在圖上的決策最短路問題。 按P4568 [JLOI2011]飛行路線這個題來說。 走每條邊時可以有KKK次讓這條邊免費的機會。 建圖的方法是,原圖先建好,針對KKK次免費的機會,每次機會新建一層圖,新建的每層圖與原

原创 AcWing 325. 計算機

題目鏈接:傳送門 要求每個點能到達的最遠點的距離 求出樹的直徑的兩個端點 對每個點和這兩個端點的距離最大值取max即是答案 當然還有一種樹形dp做法 #include <bits/stdc++.h> #define A 20010

原创 Luogu P2899 [USACO08JAN]手機網絡Cell Phone Network

題目鏈接:傳送門 很明顯的樹形dpdpdp,這個點可以被自身,兒子,父親三個點覆蓋 但我們貪心試一下 從最下面的點開始,顯然放到最底下一個信號塔是不優的 放到葉子節點的父親節點會更優,所以每次找到最下面一層節點的上一層節點把它放上

原创 二分圖匹配相關概念及內容

這裏的概念比較多容易混淆,而且出題時這種可能會針對這些內容直接出結論題,整理一下 二分圖的概念 如果一個圖可以將其頂點分成兩個互不相交的子集,且圖中的每條邊所連的兩個點分屬這兩個子集,那麼這個圖可以稱作二分圖。 一個無向圖