原创 後綴數組學習小結(已經死了)

一直想學習後綴數組,但是lrj的算法經典上只給出了原理和代碼,代碼上面沒有註釋,讓人很難讀懂。所以我對後綴數組的瞭解一直停留在知道這個東西和倍增法的原理,至於板子和套路完全不知。 最近還是死啃了板子,把我現在掌握的東西記成博文,

原创 UVALive - 7531 Fence

題目鏈接 分析: 題目要求通過1和2√ 長度的邊把給定的點全部圍起來,於是很容易想到求一個凸包,然後長度1個數爲max(abs(x1−x2),abs(y1−y2))−min(abs(x1−x2),abs(y1−y2)) , 長度

原创 codeforces 570D Tree Requests

題目鏈接 分析: 之前學習到了一種做法,將樹上的dfs序和bfs序都計算出來,主要用到bfs序。通過bfs序可以找到對應層數的所有節點,然後通過dfs序範圍確定符合要求節點的範圍長度,這一點可以用二分來確定左右區間範圍。然後就是判

原创 codeforces Educational Round 16 E. Generate a String

題目鏈接 分析: 乍一看這道題感覺dp不能做,然後跑圖論。spfa和dijkstra跑的話可能會複雜度太大。 實際上這道題dp可以做的,需要仔細想一下。 對於每個dp[i], 有三種轉移方法dp[i]=min(dp[i−1]+x

原创 Codeforces Round #379 (Div. 2) F. Anton and School

題目鏈接 分析:這道題的關鍵點是要知道一個關於位運算的式子 a+b=(a|b)−(a &b) 這樣的話,可以有以下的推導:∑ni=1a[i]=sum ,那麼c[i]=∑Nj=1(a[i]+a[j])−b[i] ,然後推出b[i

原创 codeforces 660E Lomsat gelral

題目鏈接 分析: 這是一道啓發式合併的題目,大致思路非常簡單,就是從根節點dfs,對於每棵子樹,將它子節點的信息合併到子樹根節點。合併的過程中,把小樹合併到大樹中降低複雜度。可以利用map, s[i][j][k]s[i][j][k

原创 hdu 5961 傳遞 ccpc 2016 合肥站

傳送門 分析: 這道題非常有趣。。 可以這樣想: 對於一個傳遞的圖,那麼對於∀a,b,c∈V ,如果a−>b,b−>c ,那麼a−>c 。畫一個圖可以看出來,這個的話從一個點出發一定只有兩層的深度。這很好理解。那麼就bfs一

原创 dlutoj 1008 歐拉函數求和

鏈接(不知何時失效) 1008: 歐拉函數求和 Description 前不久,小D剛剛學習了歐拉函數. [1,n] 中和n 互素的個數稱爲nn的歐拉函數,記作ϕ(n)。其中,有一個性讓它記憶深刻:n的所有因子的歐拉函數

原创 hdu 1069 Monkey and Banana

題目鏈接 其實,dp我一直是拒絕的。這方面我一直十分薄弱。但是難關還是一定要攻克的= =如是我終於開始磕dp專題了。那就先從比較簡單的問題開始吧。 題目大意是有一些不同規格立方塊無限個,把它們疊起來。要求下方的在橫截面上長寬嚴格大

原创 hdu 5212 Code

題目鏈接 分析:這道題可以嘗試容斥原理或者莫比烏斯反演,其實本質上是一樣的。 處理一下每個素數在給定的條件中有多少個倍數,然後容斥原理或者莫比烏斯反演統計一下gcd(x,y)=t 的(x,y) 的對數,最後統計一下答案,取模。 代

原创 codeforces D. Bear and Tree Jumps

題目鏈接 自己好弱啊, 比賽的時候感覺有點想法,但是思維一直非常混亂,沒有找對正確的節點合併的方法- -學習了一下題解,感覺通過層次將節點分類的做法非常巧妙,自己沒有想到= =在此mark一下。 分析: 求總的路徑長度是非常簡單

原创 hdu 5965 掃雷 ccpc 2016 合肥站

傳送門 分析: dp題目計dp[i][j][k] 爲到第i 個位置,上下一共放j 個雷,前面一格放k 個雷個方案數。 枚舉一下第i−2 位的雷數與第i−1 位的雷數,那麼第i 位的雷數可以算出來。 如果放兩個或不放,數目保持

原创 poj 2774 Long Long Message

鏈接 分析:sa的板子題,mark一下。 附帶自己的sa學習小結。 http://blog.csdn.net/hahatianx/article/details/53142050 代碼: /******************

原创 spoj Distinct Substrings

題目鏈接 分析: sa後綴數組題。正着不好做可以反着想。我們可以思考重複的串有多少個,這就對應着後綴數組求完後求的height數組。每個height[i] 長度的串可以構成height[i] 個重複的串,通過總的減去就行了。 劉

原创 主席樹學習筆記

今天學習了一個特殊的線段樹結構,主席樹。 概念: 主席樹是一種可持久化的線段樹結構,然後沒了= = 用途: 主席樹的最基本用途是查詢a[l] ……a[r] 的x∈[L,R] 的x 的個數。 引申還可以查詢區間中第K小的數是什麼。