原创 AC自動機的初步學習 hdu2222 AC自動機入門題

本來KMP和trie樹就不太熟悉,但是就是想弄明白AC自動機是什麼東東,所以就找了一些博客學習了一下,用hdu2222練了一下手。 推薦幾篇很好的博客: http://www.cppblog.com/menjitianya/archive

原创 hdu 1247 trie樹入門題

題目:http://acm.hdu.edu.cn/showproblem.php?pid=1247 題意:給你一些單詞,輸出是由兩個其他的單詞組成的單詞。 分析:trie樹的入門題,很簡單,這題的數據很水,每個單詞的長度不會超過26.

原创 幾道數學問題 (未完成)

知識點:判斷三角形是否爲非退化三角形。 方法:判斷三點是否在一條直線上,看斜率。但不能直接求斜率,會有精度損失而且還要分情況處理。解決如下: bool ok(point a,point b,point c) { return (

原创 poj 1185 炮兵陣地 狀壓dp

題目:點擊打開鏈接 題意:如圖,大炮可以放在p處,黑色區域是可以攻擊的範圍,問怎麼放大炮可以不會誤傷,求出最大數? 分析: 和上一篇poj3254一樣,這是這題多加了一個判斷,就是還要考慮上上行的情況,其實跟上一題差不多,具體參考代碼

原创 poj 3630 找重複前綴 trie樹

題目:點擊打開鏈接 題意: 給你一些電話號碼,如果其中一個電話號碼是另一個電話號碼的前綴,那麼輸出NO,否則YES 分析: 這題就是找最小前綴問題,以前我都是用string然後排序,然後取相等的一段判斷就行。今天主要是學習一下trie樹。

原创 UVa 11732 strcmp函數 trie樹 左兒子右兄弟表示法

題意: 給出n個字符串, 計算兩兩比較的次數. 每次比較都需要比較(str1[i] == str2[i])和 (str1[i]== '\0'各一次). 分析: 邊插入邊統計,這樣就剛好是兩兩比較一次的結果。如果先建樹再深搜,那麼就多比較了

原创 poj 3254 Corn Fields 狀壓dp入門題

題目:點擊打開鏈接 題意:一個矩陣裏有很多格子,每個格子有兩種狀態,可以放牧和不可以放牧,可以放牧用1表示,否則用0表示,在這塊牧場放牛,要求兩個相鄰的方格不能同時放牛,即牛與牛不能相鄰。問有多少种放牛方案(一頭牛都不放也是一種方案) 分

原创 Codeforces 527C 線段樹 /set

題目:http://codeforces.com/problemset/problem/527/C 題意: 給出矩形的長和高,然後給出一些操作,水平或者豎直切割矩形,每切割一次,求出剩下的面積最大的矩形 分析: 看到題目,就想到是如何維護

原创 hdu1693 Eat the Trees 插頭DP

題目:點擊打開鏈接 題意:一個棋盤上有0,1.需要找一些迴路把1全部串起來,問總方法數 分析:插頭dp第一題,果然有點難度,用了我一天的時間,還是自己太菜了。。。。 我是看了這個圖才恍然大悟的,這就對應下面的三種可以聯通的情況。 對於爲什

原创 hdu 1075 翻譯火星文 trie樹 / map

題目:點擊打開鏈接 題意:給你一段火星文對應的英文,再給你幾句火星話,讓你翻譯成英文。 分析:先把火星文建成一顆字典樹,在翻譯的時候,查找每個單詞塊,看是否這個串在字典樹中能否找到,因爲在建樹的時候id存儲了對應單詞的英文,所以查找的時候

原创 hdu 3001 Travelling 狀壓dp TSP變形

題目:點擊打開鏈接 題意:給定n 個城市已經 m 條路 以及對應路費c,要求遍歷所有城市最少的路費,每個城市不能超過2次 分析:要求每個點最多走兩邊,不是只可以走一次,所以要用三進制的狀態壓縮解決這個問題。可以預處理每個狀態的第k位是什麼

原创 zoj 3471 Most Powerful 狀壓dp(簡單)

題目:點擊打開鏈接 題意:有n種原子,原子i和j相撞,如果j消失,會產生能量a[i][j],如果i消失,會產生a[j][i]能量,問產生的最大能量。 分析:這題很簡單,本沒必要寫,但這是我第一道獨立做出來的狀壓dp題,於是寫出來了。 f[

原创 Codeforces 628D 偶數位全是某個數 數位dp

題目:點擊打開鏈接 題意: d magic number(0<=d<9)的意思就是一個數,從最高位開始奇數位不是d,偶數位是d 題目問,給a,b,m,d(a<=b,m<2000)問,a,b之間有多少個數滿足既是d magic number

原创 LA 3942 背單詞 trie樹+dp

題目: 題意: 給定一個字符串和給定一個單詞集合。問從給定單詞集合中選取單詞,有多少種選取方法剛好拼接成字符串。 例如: abcd 4 a b cd ab 有兩種 a-b-cd ab-cd 分析: 劉汝佳書上入門經典的題目,看了他的模板敲

原创 poj 2411 骨牌覆蓋問題 狀壓dp

題目:點擊打開鏈接 題意:用1*2 的矩形通過組合拼成大矩形,求拼成指定的大矩形有幾種拼法 分析: 這題的關鍵在於什麼狀態是合法的,可以這樣想,用1表示有骨牌覆蓋,用0表示空着。在覆蓋第i行的時候,那麼如果覆蓋的狀態是合法的,覆蓋完後第i