原创 Codeforces Round #315 (Div. 2) C - Primes or Palindromes?(暴力打表)

題意:給一個p和q然後求π(n) ≤ p/q*rub(n),的最大的n值,其中π(n) 表示從1到n之間的素數的個數, rub(n)表示從1到n之間的迴文數的個數(迴文數不能有前導0,且從左到右和從右到左一樣) 分析:其實這題沒有題目沒

原创 線段樹專題—POJ 3667 Hotel(區間合併模板)

題意:給一個n和m,表示n個房間,m次操作,操作類型有2種,一種把求連續未租出的房間數有d個的最小的最左邊的房間號,另一個操作時把從x到x+d-1的房間號收回。 分析:這是一個區間合併的典型應用,基本只要套套模板就好了 下面是對區間合

原创 線段樹專題—HDU 4027 Can you answer these queries?

題意:給n(1-100000)個點,且所有點的值的和不超過2的63次,然後m(1-100000)個操作,操作有兩種,一種把一段區間的每個點的值變爲他的開根號的值,另一種是詢問一段區間點值的和 分析:先求出最多要更新的次數,然後進行判斷,

原创 HDU 5340 Three Palindromes (manacher算法)

題意:給一個20000長度的字符串,問能否拆成3個非空的迴文 分析:可以用後綴數組做,但是感覺比較麻煩,這裏採用新學的一個manacher算法 (不會的可以移步http://blog.csdn.net/sin_xf/article/de

原创 算法進階之manacher算法 (求最長迴文)

前幾天bestcode做到一道字符串的題目,需要O(n)的迴文,正好看到網上的manacher算法,於是來學習一發 進入正題: manacher算法 用法:一般用於求一個字符串的最大回文,操作過程中會記錄以每個點爲中心的迴文半徑,可用

原创 HDU 5289 Assignment(單調隊列)

題意:給T足數據,然後每組一個n和k,表示n個數,k表示最大允許的能力差,接下來n個數表示n個人的能力,求能力差在k之內的區間有幾個 分析:維護一個區間的最大值和最小值,使得他們的差小於k,於是採用單調隊列 普通單調隊列做法: #in

原创 線段樹專題—HDU2795 Billboard

題意:給一塊h*w廣告板,然後給n個1*wi的廣告條,廣告條放的順序是有限選擇向上的,再優先選擇左邊的,對於每塊廣告條,輸出它放的位置,如果放不下,輸出-1 分析:很簡單的單點更新max值的線段樹,思路很好想,以廣告板的每個高度建樹,更

原创 線段樹專題 POJ3468 A Simple Problem with Integers

題意:n個點,m個操作,兩種操作類型,C X Y K 表示區間[x,y]上每個點值加k,Q X Y 求區間[x,y]的和 分析:線段樹區間求和,裸模板 注意:結果會超int,要用long long 表示,如果是在hust上交結果要用%

原创 HDU 5305 Friends(深搜)

題意:t組數據,每組一個n和m表示點數和邊數,接下來m條邊,每條邊兩種狀態,求每個點鄰接邊的兩種狀態數目相同的排列方式有幾種 分析:從第一個頂點開始往下深搜每條邊,每條邊兩種狀態,注意回朔。 代碼: #include<cstdio>

原创 HDU5335 Walk Out(dfs+遞推)

題意:大致意思是給一個n*m的01矩陣,起點爲左上方(1,1),終點爲右下方(n,m),求從左上方到右下方字典序自小的路徑,如果路徑都爲0,則輸出0。 分析:首先字典序最小,先要滿足路徑最短,再滿足路徑的值最小,路徑最短的毫無疑問是越靠

原创 HDU 5325 Crazy Bobo(深搜)

題意:給一個n,接着輸入n個數,表示n個點的值,接着輸入n-1條邊形成一個生成樹 問最大有多少個點的集合使得該集合內的所有點都滿足如下:對於集合內點大小相鄰的兩個點,該兩點之間經過的所有點的大小都小於該兩點 eg  7 3 30 350

原创 線段樹專題—HDU1698 Just a Hook

題意:t組數據,給一個n,m表示n長度的鉤和m次操作,初始鉤子的每單位長度的價值爲1,接下來輸入 x,y,k 的操作把鉤子[x,y]區間的價值替換爲k,求m次操作後鉤子的價值爲多少 分析:成段替換,最後只要求第一個區間就可以了,使用不用

原创 HDU5312 Sequence

題意:t組數據,每組數據給個m,問m最少能由幾項形如3*n*(n-1)+1的數表示 eg 7=1(n=1)+1(n=1)+1(n=1)+1(n=1)+1(n=1)+1(n=1)+1(n=1);      7=7(n=2);      所以

原创 hdu5313Bipartite Graph(二分圖染色+DP(bitset優化))

題意:給n個點m條邊,問最多可以添加幾條邊使圖爲完全二分圖 分析:如果二分圖沒有限制,看到是兩邊分別爲n/2個點和n-n/2個點的最優但是可   能出現大於此點的情況,比如n=4,m=3,邊爲1 2,1 3,1 4.此時完全二分圖邊最多

原创 HDU 5323 Solve this interesting problem(暴搜)

題意:給一個l,r,表示區間[l,r],問是否存在區間爲[0,n]的線段樹的節點區間爲[l,r],如果有求最小的n,如果沒有輸出-1 分析:對於線段樹而言,其中一段區間也就是一個節點可以有左節點或者右節點,而對於一個節點的左節點有兩種情