原创 uva live 6428 A+B(gcd拓展)

題意: 給三個整數 a, b, S。 每次 1) a += b 或者 2) b += a 問經過若干次操作後,能否得到S 思路: 首先需要得到 ax + by = S 的正整數解系。 然後可以觀察並且可以猜想。。。滿足

原创 UVALive 6838 (括號匹配x線段樹)

題意: 。。 題目地址 思路: 定義a, b數組, indexed from 1 a[i] = a[i-1] + ( s[i] == '(' ? 1 : -1 ); 定義一個b數組 b[i] = a[i] - i s平衡的

原创 uva 1670 Kingdom Roadmap(圖論構造題)

題意: 給你一顆樹, 讓你加最少的邊使這個圖不存在割邊。 思路: (在acdream羣裏看到有人問這個問題, 就去做了。。做完的感想是。。圖論構造題是太無解了。。) 很容易猜到答案是 (m+1) / 2 ,m是葉子的個數。

原创 【收集向】位操作技巧 bitwise operation trick

參考: http://www.codeproject.com/Articles/28681/Bitwise-Operation-Explained http://blog.csdn.net/haoni123321/article

原创 codeforces 570D Tree Requests (樹轉dfs序,區間統計)

題意: 。。。 思路: 比賽的時候,想到dfs序,不過對層想不到好的處理方法。。 結束髮現其實很簡單。。分層統計不就行了嗎。。 所以可以對每個詢問,二分在層內的位置,也可以存前綴和,離線處理詢問,甚至可以每一層都建一個B

原创 hdu 5381 The sum of gcd (線段樹x樹狀數組x區間和維護進階x離線處理)

題意: 給定區間,求所有子區間gcd之和。區間gcd定義爲區間中所有數的gcd。 思路: 從一個點開始,朝某個方向一直求gcd,會形成一個非增序列,且下降不超過32次。(每次下降至少減半) 所以在線的思路就是用線段樹,每個

原创 hdu 4366 Successor (線段樹xdfs序x排序預處理)

題意: 給一顆樹,每個節點兩個屬性(x,y)。 每次查詢一個子樹中,x大於root(子樹的根)且y最大的節點。 思路: 查詢子樹,很容易想到先求出dfs序然後用線段樹維護y值。 但如何保證 x 呢? 如果讓線段樹初始爲空

原创 HDU 5378 Leader in Tree Land (概率dp,進階)

題意: 給一棵有n個節點,根爲1的樹的每個節點賦一個值 1-n 的唯一的值。一個子樹的代表是其中最大的節點。則一共有m個代表,求m=k的方案數。 思路: 多校題。。這樣的dp還是不太會。。 1) u是一個代表 等價於 u是

原创 zstuoj 4186 表白計劃(區間操作x線段樹)

題意: 。。 這道是zstu2015校賽題。。 傳送 思路: 對於第一個詢問,先維護差分序列,然後求對差分序列求兩次前綴和得到前綴和。 對第二個詢問。 假設用pair<int, int>來表示區間。 先把表白計劃按

原创 hdu 4622 Reincarnation(後綴自動機,入門級)

題意: 求字符串任意字串的不同字串數。 思路: 用後綴自動機可以做到 O(n2) 預處理,O(1) 回答查詢。 不過我的代碼跑了 1000+ms 別人的代碼可以跑到 100ms-200ms。。 VJ的記錄 #inclu

原创 【算法筆記】最短路總結

次短路 目前只會用dijstra求解。。(貌似有用spfa的。。 當然如果是DAG, 拓撲排序加DP也是可以的。。 次短路的求解和計數 hdu 3191 這道題有邊權爲0的情況。 dij所使用的貪心性質:S是目標集合(已經求得

原创 【算法筆記】Aho-Corasick 算法(AC自動機) 小結

參考: 《算法競賽入門經典-訓練指南》 http://codeforces.com/blog/entry/14854 kuang bin blog 加上不存在的邊,並壓縮冗餘轉移 這個改進《訓練指南》中說過, 本文的目的是總結

原创 My Booklist

標記解釋: 紫色:初步熟讀 綠色:初步讀完 橘色:正在讀 藍色:準備讀 紅色:擱置中。。 黑色:查閱用。。 操作系統 unix高級環境編程 unix網絡編程 卷1 Linux 內核設計與實現 深入理解計算機系統 網

原创 UESTC 360 Another LCIS(線段樹 x 經典區間合併姿勢)

題意: 定義 CLIS 爲在原序列中連續的一段構成的 LIS。 兩種操作 a)給某個區間加上一個值 b ) 詢問區間 CLIS 思路: 。。。 const int N = 100000 + 5; #define lc

原创 POJ 2892 Tunnel Warfare (線段樹)

題意: 。。。 思路: 類似 Hotel。。 不同的地方是,需要通過單點來得到包含它的空區間。 因爲空區間一定會在某個節點分成兩半,一半在左孩子,一半在右孩子。(空區間長度爲1特例) 所以查詢時加個判斷就行了。 PS