原创 POJ 1014 Dividing

突然忘記怎麼寫揹包,數據量比較小乾脆直接深搜了一下,感覺速度還可以,相當於從大到小開始選然後暴力搜索,搜索到結果以後跳出,沒有任何剪枝優化= = #include <iostream> #include <memory.h> #inclu

原创 POJ 3295 Tautology

這道題是讓判斷一個MMF是否爲永真式,所以要枚舉每個變量的值,然後用求前綴表達式的方式,用遞歸求值,但是這道題有兩個特別詭異的錯誤調試了很久,看了討論區才突然明白是怎麼回事。 在遞歸的過程中我使用的是work()函數進行求值,然後使用了語

原创 POJ 2027 No Brainer

賣萌題目不解釋= = #include <cstdio> using namespace std; int main(){ int n; scanf("%d",&n); while(n--){ i

原创 POJ 3735 Training Little Cats

剛開始看三種操作就有點像矩陣的基本行、列運算,覺得應該用矩陣,但是之前某次考試的時候用矩陣乘法超時了,而且一直沒有用矩陣解決過實際問題,這次也算是長了姿勢 三種操作對應三種基本矩陣,在由於基本矩陣屬於稀疏矩陣,因此可以用一個小的優化來加快

原创 POJ 2002 Squares

之前沒怎麼做過這種幾何的題目,這次通過這道題也是知道了一些簡單的做幾何題目的思考方向,本題就是在一大堆點中找正方形,值得注意的是正方形有可能是斜着的= = 大體思路是對點進行枚舉,先按照橫縱座標從小到大的順序排序,然後對點進行兩兩配對,

原创 POJ 1159 Palindrome

寫這個看似簡單的題目才發現自己原來毛都不會(╯‵□′)╯︵┻━┻,加上網上有很多的解析其實講的都不準確,導致了很多理解上的錯誤 這道題就是求字符串s和字符串的逆序串s’的最長公共“子序列”,而並非所謂的最長“子串”,一般來說兩個子串一定是

原创 POJ 1011 Sticks

寒假決定開始刷題了,寫這道題主要是爲了克服內心的恐懼感…大一的時候學DFS的時候聽這道題給嚇傻了,各種剪枝的方法不知道從哪裏入手,比較關鍵的剪枝應該是當組成一個新的木棒的第一個片段失敗的時候,這個片段就永遠都會失敗,不會再次使用 另外再審

原创 POJ 2388 Who's in the Middle

水題…sort過了…但是如果題目的數據夠強的話可以考慮用Ultra Quick Sort的方法來找中位數,時間複雜度更低 #include <iostream> #include <cstdio> #include <algorithm>

原创 POJ 1050 To the Max

動態規劃的思想,用到的一個最基本的方法就是求一維數組連續數字串的和的最大值,狀態轉移方程爲sum[i] = max(sum[i-1]+a[i],a[i]) 在二維的情形中就是先枚舉任意兩行,然後對每一列在這兩行之間的數字先求和,然後對求出

原创 POJ 1163 The Triangle

經典的DP題目,自下而上進行,狀態轉移方程爲 dp[i][j] = max(dp[i+1][j],dp[i+1][j+1])+data[i][j]; #include <iostream> #include <cstdio> using

原创 POJ 1936 All in All

比較水的題目,對兩個字符串都進行一次遍歷,看看能不能對應起來,比kmp要簡單的多 #include <iostream> #include <cstdio> #include <memory.h> #include <string.h>

原创 POJ 2001 Shortest Prefixes

題目要求要給所有字符串找一個最短的前綴,讓能夠根據這個最短的前綴與其他的字符串區別開,這裏用一個字典樹,每個節點記錄相應字母出現的次數,在建立完字典樹之後查詢的時候遇到1或者字符串遍歷到結尾的時候進行輸出,比較容易的題目。 #includ

原创 POJ 2823 Sliding Windows

這次是要求連續變化區間內的最大值和最小值,我維護了一個map就ac了… 不過聽別人說可以維護一個單調隊列,但是效率也並沒有高很多 == 線段樹應該是也可以的,不過線段樹可能更適用於任意區間的查詢、 有空再研究單調隊列好了~ #inc

原创 POJ 2406 Power Strings

典型的用kmp求循環節的題目,套用模板即可~ #include <cstdio> #include <memory.h> #include <cstring> #include <iostream> using namespace std

原创 POJ 1009 Edge Detection

Google面試受挫,聽說以後找實習找工作都會考這樣的題目,決定在百忙中一天至少寫一道題,題目從poj百練上找。 Edge Detection是一道模擬類題目,但是如果逐個pixel進行計算,妥妥的TLE+MLE,思考半天無果,看了這篇博