原创 左偏樹模板講解

左偏樹 左偏樹是可合併的二叉堆,首先滿足所有的堆的性質,其外,它還可以合併。 左偏樹的樹節點需要保存的信息有: 1.左右子樹節點編號 2.此節點到有空子結點(子節點數不足2個的節點)的結點的最短距離di

原创 luoojP1252樹上的最短路(LCA模板)

傳送門 分析 首先這是一道模板題,強調這是一道模板題,但我在複習的時候還WA了4次QAQ;倍增lca顯然就是再樹上做倍增,要理解的話可以畫一棵樹看看規律; 思路就是先dfs出所有節點的父親,邊權和深度,在做一個dp,求出所有的1

原创 LOJ #10202. 「一本通 6.2 練習 5」櫻花

題目鏈接 求不定方程:給定n,1/x + 1/y = 1/n 的正整數解數 基本的思路 首先化簡可得 (x+y)/x∗y=1/n 關鍵一步 令 x=n+a y=n+b 這一步相當關鍵,整個題目的精髓所在。 因爲x和y和n都是正

原创 題解:BZOJ5254 : [Fjwc2018]紅綠燈

題目鏈接 一道毒瘤題 /* 直接貼題解,代碼附註釋 顯然所有詢問都要經過至少∑d,只需要考慮除了∑d之外的等待紅燈的時間。 將所有詢問的時間模g+r,並按時間用set維護。 那麼對於每個紅燈,在set中可以找出1到2個區間,將裏面所有

原创 noip2013day2壓軸題 華容道

題目鏈接 首先這是一道毒瘤題,寫了一下午沒有瞎弄出來,看了題解纔有所領悟 以上都是一些廢話 分析 開始想過70分的暴力,直接暴力BFS,答案離線,起點相同的一起做;試過不止70分 首先很容易看出來這是一道圖論題,顯然是要

原创 Luo's oj P1916 簡單的序列(bracket)

傳送門 分析 我們將左括號看作 1,右括號看作 -1,則一個合法的括號序列需要滿足: *所有括號的總和爲 0 *每個前綴和均不小於0 我們先統計出串 s 的總和 a 以及最小的前綴和 b,然後枚

原创 luo's oj P1974 寶藏(treasure)

傳送門 分析 noip day2 關鍵題狀壓dp 首先這是一道裸題就是MST的dp上加了一點要求;然而我並不會MST的dp於是生推QAQ; 效率(n^4)hhh其實是我也不知道這個記憶化剪枝太玄學了(劃掉) 代碼其實很簡單的

原创 Luo's oj P1918 簡單的操作

傳送門 分析 (直接帖題解) 先考慮連通圖的情況。 首先如果原圖不是二分圖,顯然無解。因爲對於一個長度大於 3 的奇環,如果合併環上任意兩個不相鄰的點,一定會生成一個更小的奇環,最終會剩下一個三元環,無法繼續合併。 對

原创 Luo's oj P1895 樹上游走期望(tree)

傳送門 分析 首先可以模擬一下樣例,好吧這是一個鬼畜的過程,數論?推公式QAQ我好想不會;樹形dp,感覺是但是好像不太懂期望,不過好像要用lca();結果果斷爆零。我果然還是太菜orz;當場棄療;yrc大佬又抄了代碼AK全場orz 還是

原创 POJ P1185 炮兵陣地

題目鏈接 分析 *看數據顯然是狀壓dp*QwQ 首先分析列數爲1的情況:第i行的炮臺數分兩種情況,當其爲山地時,不能放炮臺,故f[i]=f[i-1];若其爲平原,有放與不放兩種情況,放時前兩行不能放,故:* f[i]=max(f[i-3

原创 luo's oj p1735 圖XM

題目鏈接 分析 首先滿足題目要求原圖G必須是DAG,然後可以得到藍圖中(u,w),(w,v)一定存在(u,v)在紅圖中一定沒有(v,u)(u,v),所以只要把其中的一個圖的邊全部取反,在判斷一次DAG就可以了(用拓撲判斷是否是DAG)

原创 luo‘s oj P1917 簡單的期望(exp)

傳送門 分析 令 dp[ i ][ s ][ j ][ k ] 爲進行了 i 次操作,當前數的二進制表示中後 8 位爲 s ,第 9 位爲 0 或 1,並且從第 9 位開始有連續 j 位相同的概率。轉移挺麻煩的但是很顯然,這裏就不

原创 luo's oj p1734排序XM

題目鏈接 分析 貪心,沒有很好的證明把最小值minv置爲a[n],不停地作比較,把之前的比minv大的a[i]往後交換,並不斷交換最小值 #include<bits/stdc++.h> #define N 5000010 using na

原创 HDU2196Computer(樹的中心問題)

傳送門 分析 首先題意是在一棵樹T中輸出每個結點的最遠距離; 首先第一個dfs求出所有每個節點i在其子樹中的正向最大距離和正向次大距離和d[i][0]和d[i][1](如果i節點在子樹中最大距離經過了2號兒子,那麼次大距離就是不經過2號

原创 luo's oj P1560 [USACO 1.5.4]跳棋的挑戰

傳送門 分析 首先這是一道搜索題QwQ,但我偏不用搜索做OvO,好吧練一下位運算 主要框架還是搜索,用位運算來傳遞狀態,速度可見一斑 #include<bits/stdc++.h> using namespace std; int