原创 hdu 1051 Wooden Sticks (水題,貪心)

小記:這題比較水 思路:按長或重從小到大排序,然後對排好序的序列根據重或長(注意是和前面的相反的)求最長子序列,求出一個答案就加一,然後將這個最長子序列的所有值都標記 然後對剩下的值,繼續求最長子序列。 簡單點的方法就是,一路往上,碰到

原创 hdu 1009 FatMouse' Trade (水題,貪心)

小記:這題比較水 思路:將J[i]/F[i]的值進行從大到小排序,然後依次貪心 代碼: #include <iostream> #include <stdio.h> #include <string.h> #include <math

原创 hdu 1372 Knight Moves(bfs)

小記:這題看懂題意就簡單了 題意:國際象棋的馬的走法,可以有八個方向走,和中國象棋馬一樣的走法。8*8地圖上,給你一個起點一個終點,問你最少到達步數 思路:bfs 代碼: #include <iostream> #include <

原创 hdu 1518||poj 2362 Square(dfs)

小記:這題看重的是剪枝,但是都後來發現,其實這應該是一個當初的想法錯誤,導致的TLE 思路:dfs,一條邊一條邊的dfs,當能dfs出3條邊時,就是yes。當然最開始應該判斷%4是否等於0對於總長度。 而dfs的順序就是從大到小,這點算

原创 hdu 3374 String Problem (最小表示法+kmp next[])

小記:這題蠻好,比較有意思 思路:字母序最小和最大的串,我們可以用最小表示法和最大表示法解決,比較簡單。參考 然後就是出現的次數,這個解決方案可以直接利用kmp的next數組直接暴力求取最大和最小的出現的次數。 但是這裏面卻還是有特性的

原创 poj 1509 Glass Beads (最小表示法,模板題)

小記:字符串的最小表示法的最基本的應用,之前還不知道呢, 於是查了查資料看了看,發現這方法其實還蠻不錯的, 思路:如果有kmp,manacher,擴展kmp,ac自動機, trie樹等學習經驗的話,最小表示法還是蠻容易懂的。 我看的也不

原创 poj 2528 Mayor's posters(線段樹+離散化,染色)

小記:這題真TMD煩啊,我一個建樹出現了一點小問題,就是沒有建立起葉子節點像(1,1) (2,2)等這樣的點,導致了答案一直錯,連樣例都過不了,但是我又想不通哪裏錯了 QAQ 思路:首先hash離散化,有用線段樹做矩形交面積等題的應該會

原创 hdu 1258 Sum It Up(dfs)

小記:起初以爲是一道非常水的dfs暴搜題,然後寫完測試一看,蒙了。 相同的答案太多,也就是說,我將相同的數字都看出是不一樣的了,實際上都是相同的, 也就是說我沒判重。於是就必須加個判重,但是這樣又不好做了,標記判重不可能。 思路:對每個

原创 hdu 2609 How many (最小表示法+map)

小記:這題考驗了我的stl的功底。。。差啊。 不過還好A掉了 思路:對每個串,如果最小表示法相同兩個就是same。 所以我對最小表示法 hash,用map標記。 我這中間涉及了char到string的轉換。我用的是insert 代碼:

原创 hdu 1800 Flying to the Mars (trie樹)

小記:這題其實是比較水的,尤其是數據,看discuss裏別人都是用int存的,30位的數int能存的下??!! 思路:trie樹來hash,記錄每一個值出現的次數,次數最多的就是答案。 這裏要注意的就是0, 如果用trie樹, 它輸入0

原创 hdu 1425 sort (水題,計數法)

思路:數值範圍就那麼大,看個數組,一個一個的放,然後從後面輸出 代碼: #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #incl

原创 poj 2828 Buy Tickets (線段樹)

小記: 這題之前想的簡單了, 後來看了樣例,發現了自己想法的錯誤 思路:一開始便發現這題,應該反過來思考的。但是用線段樹解決還是有點沒想到。 方法是:從後面開始看起,這樣計算完它之後,計算後面的值的時候不會影響之前計算過了的結果。相當於

原创 hdu 4162 Shape Number(最小表示法)

小記:這題題意看的有點麻煩,但是讀懂了就簡單多了。差分鏈碼出了一次錯... 思路:如果僅僅只是求最小的字母序的排列,那麼就可以直接用字符串的最小表示法直接解決,可以得到最小排列的第一個字符在該字符串的那個位置。 但是題目要求了,必須要規

原创 hdu 1228 A + B (水題,map)

思路: map<string, int>即可 代碼: #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <stdl

原创 hdu 1050 Moving Tables (貪心)

小記:room那張圖很重要,起初一直以爲沒用,後來wa後才知道錯在哪裏了 思路:貪心也是可以的,不過我那種貪心的方法比較麻煩,和今年暑假不AC的原理差不多,但是就是看你的層數,而且對奇偶有要求 直接計數是最好的,但是要奇偶判別出來,因爲