原创 HDU5023 - A Corrupt Mayor's Performance Art(線段樹)

題目鏈接: HDU5023 【題意】給出一條線段有n個點,初始每個點的顏色都是2;給出兩種操作: ‘Q’查詢區間[a,b]內的所有包含的顏色從小到大輸出; ‘P’給區間[a,b]染上c色; 【分析】線段樹區間更新,區間查詢,位運算記錄下就

原创 HDU5087 - Revenge of LIS II (次長上升子序列)

題目鏈接 HDU5087 【題意】求第二長的LIS的長度。 【分析】有兩種方法; 1.直接添加一個dp[]在更新最大值的同時更新第二大值就可以了。 2.用cnt[]記錄每個位置到達的次數,最終統計一遍最長長度出現的次數和,只出現一次的話次

原创 【差分約束】

題目鏈接 HDU3666 【題意】給你一個N*M的矩陣,求兩列數a1,a2,a3...an 和 b1,b2.....bm使得對矩陣中的每個數進行下面的操作之後的值在[L,U]之間,操作爲:a[i] * m[i][j] / b[j]。  N

原创 【有向圖強連通分量(SCC)】

【Tarjan算法(O(n+m))】 #define rep(i,a,n) for(int i = a; i < n; i++) #define repe(i,a,n) for(int i = a; i <= n; i++) #defin

原创 HDU3926 - Hand in Hand(判斷入度最大爲2的無向圖的同構)

題目鏈接 HDU3926 【題意】 給出兩張圖,判斷是否同構,每個人只有兩隻手,所以度最大爲2 【分析】因爲度最大爲2,所以這個無向圖只由環和鏈構成(點也看成鏈),所以只需要判斷鏈的數量,每個鏈中點的數量,環的數量和每個環中的數量相同即可

原创 【網絡流模板】

===【最大流(最小割)算法】=== 最小割就是刪掉權值最小的邊讓源點和匯點分別分在兩個不連通的集合(就是把圖分成兩個集合,保證源點和匯點不連通,可以解決刪掉權值最小的邊刻意讓某些點和另外點孤立,也就是堵住前面點到匯點的去路) 【增廣路E

原创 HDU5033 - Building(暴力,DP思想)

題目鏈接 HDU5033 【題意】在直線上給出n幢房子的座標和高度,求出人站在任意沒有房子的位置上時能看到的天空的角度範圍;房子座標不會重複,並且保證人站的位置至少左右各有一座房子,注意座標和高度是實數。 【分析】只要DP思想那樣記錄每個

原创 HDU5063 - Operation the Sequence(離線處理)

題目鏈接 :HDU5063 【題意】有一個序列a1,a2,a3... an (n<=10000);m次操作,有4種,分別在函數對應3種修改和每次q i詢問當前a[i]的值。 【分析】正向操作肯定超時;看到最多隻有50次查詢,所以首先把所有

原创 【無向圖的雙連通分量】

【Tarjan算法求 塊(點雙連通分量) O(n+m)】 割頂可以屬於多個塊中,而非割頂只能屬於一個快,所以不能直接去掉割頂求塊,而需要下面算法 #define rep(i,a,n) for(int i = a; i < n; i++)

原创 NYOJ127 - 星際之門(一)(n個節點的完全樹有n^n-2個最小生成樹)

【題目】 星際之門(一) 時間限制:3000 ms  |            內存限制:65535 KB 難度:3 描述 公元3000年,子虛帝國統領着N個星系,原先它們是靠近光束飛船來進行旅行的,近來,X博士發明了星際之門,它利

原创 HDU2482 - Transit search (Floyd)

鏈接 HDU2482 【題意】給定一張地圖,每次雙擊可以把放大兩倍,地圖分成4個區域,左上角座標爲(0,0),給出經過8次操作後的起點和終點座標;然後再給出m(m <= 5000)個車站的大座標,以及n(n <= 100)條公交車路線,求

原创 HDU4932 - Miaomiao's Geometry(貪心)

鏈接 HDU4932 【題意】在x軸上給出n個點,用一些等長的線段覆蓋這些點,要求: 一:頂點必須在線段的左端點或者右端點,不可以在線段上。 二:線段之間不能相交,[1,2]和[2,3]不算相交。 【分析】比賽的時候沒想全,答案除了可以是

原创 UVA1658 - Admiral(最小費用最大流+拆點)

題目鏈接: UVA1658 【題意】給出v(<=1000)個點和e(<=10000)條邊的有向圖,求1~v的兩條不相交(除了起點終點外沒有公共點)的路徑,使得權和最小。 【分析】求的是兩條不相交的路徑,這樣就是除了起點和終點能訪問兩次外,

原创 HDU5024 - Wang Xifeng's Little Plot(DP)

題目鏈接 HDU5024 【題意】求出從一個點到另外一個點的最長的距離(最長距離爲’.‘的距離),每次只能向8個方向走,而且最多轉彎一次只能轉90度。 【分析】因爲只能轉一次彎,所以其實每次最多隻能往3個方向走,又因爲長度是‘.’的長度

原创 【VIM配置】

直接修改_vimrc 文件 set nocompatible source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin set guifo