原创 E. Graph Coloring——(二分圖染色+揹包DP倒序)

總結 這題,想明白了,感覺還行,挺綜合的 首先得知道1-2,2-3,1不能跟3連,所以,可以把1和3看成一樣,簡化題的難度,然後處理二分染色,奇數環就GG 然後,揹包DP,每個連通塊0的個數和1個個數,每個連通快是必選的 最後倒序

原创 C1. Simple Polygon Embedding——(平面幾何)

總結 幾何算法,很少遇到,一遇到就死的很慘,沒法看 == n爲偶數 == 每次增加2*2,四條邊一定在正方形上: ans = 1.0 / tan(PI / (2 * n)) == n爲奇數== 我不會,cos(PI / (4 *

原创 E. Restorer Distance——(三分——我的第一次)

總結 第一次知道還有三分這種東西,就立馬去學了學,主要處理二次函數問題,求得區間最值,也就是求峯值 三分的性質:一個區間最多一個遞增區間段,一個區間最多一個遞減區間段 上圖 這些都可以三分的,求一個區間最值 下面就是不符合標準的

原创 The Toll! Revisited UVA - 10537——(最短路+dijk記錄路徑+二分)

總結 t點是定值,求min(s):t爲起點得單源最短路 跑dijk記錄路徑,字典序最小,相同距離,儘可能更新最小,不同距離直接更新即可 就是算經過一個城鎮的算上一個點值,不好算,公式,我不會推,就索性直接二分了,反正題目數據小的可

原创 A Walk Through the Forest HDU - 1142——(最短路+DAG+拓撲+DFS記憶化)

總結 跑短路,然後在DAG上進行DP,可以拓撲DP,但是要構造DAG圖,這題可以DFS記憶化,實際上,還是DP,代碼量確少了不是一點點。 題意: 一條路徑從1到2,每條邊權滿足dis[a]>dis[b],dis表示到2的最短距離,

原创 Remember the Word UVALive - 3942——(trie+DP)

總結 這個關鍵點在於,每個單詞的最大長度是1e2,然後我們可以倒序枚舉後綴,dp枚舉向右遞推最多100,O(L*100+Slog100) 題目鏈接 //#pragma GCC optimize(2) #include<bits/s

原创 Warfare And Logistics UVA - 1416——(最短路——最短樹問題)

總結 這題,用最短樹處理更好吧,我卡着時間過的,枚舉暴力,m * n * mlogm,差不多是1e8logn 題意 求兩個ans,一個是∑I∑J path(i,j);一個是刪除一條邊,max(∑I∑J path(i,j)); 題目

原创 牛客-簡單瞎搞題——(bitset)

總結 第一次用bitset,挺神奇的,bitset索引作爲存在的值,左移相當於加法,還加個每一個可能存在的值,或進去去重。數據爲啥開到1e6,max(l)的平方爲1e4,n=1e2,S的max=1e6,最後的bitset每一位爲1

原创 牛客-筱瑪的迷陣探險——(trie+折半搜索)

總結 最大異或的通解——轉換成trie問題 暴力DFS情況,我DP跑達到1e11,哪肯定不行,我們只需要考慮對角線的情況,每個位置的最大計數爲1e5,左上情況構造trie,由下情況貪心查詢trie即可 題意 起點(1,1,),終(

原创 P4427 [BJOI2018]求和——(LCA+樹上前綴和)

總結 題目關鍵數據k<=50,先預處理一波所有深度k次方,然後求dfs處理【1-50】的dp,最後lcp模板 題目鏈接 //#pragma GCC optimize(2) #include<bits/stdc++.h> //typ

原创 144. 最長異或值路徑——(trie+樹形DP)

總結 一般最大異或題,都是轉換成枚舉n在trie上跑,也就是nlogn,n=1e5 題目鏈接 //#pragma GCC optimize(2) #include<bits/stdc++.h> //typedef long lon

原创 346. 走廊潑水節——(kruskal)

總結 排序從小到大,兩個連通塊之間增加最dis+1;保證了最小生成樹唯一 題意 給定一棵樹,構造一個完全圖,增加的邊權和最小 題目鏈接 //#pragma GCC optimize(2) #include<bits/stdc++.

原创 340. 通信線路——(分層圖最短路)

總結 這個題,有好幾種寫法,我這種是最不正規的寫法,只能說數據太弱了,分成圖的邊數m*k=1e7,還跑過了,哈哈哈。 題意 尋找一條路徑,可以讓這條路徑上的邊的權值最多k條爲0,這條路徑上權值的最大值的最小。 題目鏈接 //#pr

原创 AcWing 142. 前綴統計——(trie字典樹-模板題)

總結 用數組模擬,感覺更直觀,代碼更簡潔吧 題目鏈接 //#pragma GCC optimize(2) #include<bits/stdc++.h> //typedef long long ll; #define ull

原创 143. 最大異或對——(trie)

總結 1e5,nlogn,或者n,枚舉每個,貪心在trie尋找 題目鏈接 //#pragma GCC optimize(2) #include<bits/stdc++.h> //typedef long long ll; #def