原创 POJ 1856 Sea Battle(BFS).

~~~~ 題意: 給你一個R*C的圖,求其由圖中連通‘#“所組成的矩形的個數。  注意:If the ships were placed correctly (i.e., there are only rectangles that do

原创 POJ 2528 Mayor's posters.

~~~~ 一直MLE,才發現要寫離散化操作。其他就是線段樹的成段更新(每次用不同標記去更新區間),最後統計下有多少種標記就OK了。 題目鏈接:http://poj.org/problem?id=2528 大牛寫的很詳細,請戳:http:/

原创 POJ 1609 Tiling Up Blocks.

~~~~ 二維的最長上升子序列。n^2算法居然可以水過。。 就不多說了,排個序,然後DP。 題目鏈接:http://poj.org/problem?id=1609 ~~~~ #include<iostream> #include<cstd

原创 HDU 2377 && ZOJ 2412

~~~~ 輸入好長。。。 思路就是對線路上的每一個點BFS記錄各個點到其所需的star值,然後ans記錄所需的最大star值,最後輸出ans最小的star值及相應的id。 開始建鏈接矩陣,結果MLE,於是修改了下。 題目鏈接: http:

原创 POJ 3667 Hotel. (線段樹 區間合併)

線段樹區間合併~~~~這纔是我喜歡的代碼風格。 兩種操作: 1、輸出滿足連續區間最左邊的值。 2、更新一段連續區間。 題目鏈接:http://poj.org/problem?id=3667 so~~碼之~~~ #include<cstd

原创 POJ 3080 Blue Jeans.

~~~~ 題意就是找m組序列的最長連續公共子序列。 原來可以直接枚舉。 從大到小枚舉第一條序列長度的子序列,看下面m-1組序列是否有,找到的第一個必然是最優的(也是一個優化吧); 題目鏈接:http://poj.org/problem?i

原创 POJ 3670 && POJ 3671 (dp)

最長不下降子序列的應用嘛。兩題都是一樣的。 POJ 3670:求給定序列按遞增或遞減排列時,所需改變的最小的數字的數目。 POJ 3671:求給定序列按遞增排列時,所需改變的最小的數字的數目。   思路就是求最長不下降子序列,然後剩下

原创 HDU 2571 命運 (dp)

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2571 思路:DP自左向右,由上至下更新就好。 #include<iostream> #include<cstdio> #include<al

原创 POJ 1200 Crazy Search(hash).

~~~~ 果然用map暴力直接超時。原來要用hash,第一次寫hash,真是個好玩的東西。 題目鏈接:http://poj.org/problem?id=1200 注意:1.題目說文本是由字符組成的,所以要用ascll碼作爲下標。 2.h

原创 POJ 1631(最長上升子序列 nlogn).

~~~~ 由題意可知,因爲左邊是按1~n的順序遞增排列,要想得到不相交組合,左邊後面的一定與相應右邊後面的相連,如此一來, 就可以發現其實是一道最長上升子序列的題目,要注意的是N<40000,用n^2的算法一定會超時。 題目鏈接:http

原创 HDU 1506 && HDU1505 && HDU 2870 (DP).

~~~~ 這三道DP題是逐層遞進的,大家可以從前往後做。 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1506 http://acm.hdu.edu.cn/showproblem.php?

原创 POJ 3221 Diamond Puzzle.

~~~~ 題目鏈接:http://poj.org/problem?id=3221 顯然是BFS找最優解,可是終止條件不好寫,看到有一隻隊交上去一直TLE。 比賽完了看題解原來是以目標狀態爲起點,BFS給每個狀態打表,用一個map映射存起來

原创 POJ 1887 Testing the CATCHER.

~~~~ 求最長不上升子序列,把數組倒過來不就是求最長上升子序列了麼,QAQ.. 用的是nlogn算法,不清楚的請戳:http://blog.csdn.net/darwin_/article/details/38360997 題目鏈接:h

原创 POJ 1699 Best Sequence (DFS+預處理)

題意:看那張圖就一清二楚了吧, N個序列首位相連(相同的序列部分),得到最短的總序列。 題目鏈接:http://poj.org/problem?id=1699 ~~~~ 思路就是:將N個序列首尾相連能重合的長度求粗來。然後DFS枚舉每種首

原创 HDU 1087 && POJ 2533(DP,最長上升子序列).

~~~~ 兩道題的意思差不多,HDU上是求最長上升子序列的和,而POJ上就的是其長度。 貌似還有用二分寫的nlogn的算法,不過這倆題n^2就可以過嘛。。 ~~~~ 題目鏈接: http://acm.hdu.edu.cn/showprob