原创 ZOJ-1243(parse URL)

刷刷水題練練手速 #include <iostream> #include <string> using namespace std; struct URL{ string protocol; string host; str

原创 POJ-1694(貪心)

題目:http://poj.org/problem?id=1694 容易想到,從樹上取下來的石子可以在別的子樹上使用,對以X爲根的子樹進行Mark,假設X有N個孩子,則N個孩子必須都掛上石子之後,X才能被掛上石子,這個對這N個孩子掛石子的

原创 跳錶(SkipList)

最近在看leveldb的源碼,看到核心的skiplist時發現自己渾渾噩噩的,本來就不太懂,.h文件裏還竟是模板迭代器啥的,於是決定還是先吧思路理清楚,都提倡不要重複發明輪子,但只有熟悉輪子的製作過程,用起來纔可能得心應手啊。 這篇圖文並

原创 POJ-3699(模擬SQL查詢)

好久沒做題了,手速慢得不成樣子了呀,寫這個水題寫了2個小時,好在1A了。。。 沒什麼難度,就是麻煩,注意輸出是居中就對了 #include <cctype> #include <cstdlib> #include <iostream>

原创 HDOJ-2871(線段樹)

真是個好題,雖然WA了好幾次,但都是自己SB。。。 包含了線段樹所有的操作,看了這篇博文又加深了一次理解: http://www.cnblogs.com/scau20110726/archive/2013/05/07/3065418.ht

原创 非負分數的循環小數位長度

根據豎除法我們知道,過程是用餘數乘10除以分母,由於一個數n的餘數最多有n個,所以n步以內就可以找到循環節了 原題連接:http://www.geeksforgeeks.org/find-length-period-decimal-val

原创 hihocoder-1142(三分法)

感覺hihocoder和別的OJ有點不一樣呢,因爲可以看到關於一些常用算法的解釋,感覺這個三分法講的蠻通俗易懂呢: *********************************************************

原创 POJ-2248(加法鏈,DFS)

題目:http://poj.org/problem?id=2248 大意:序列第一個數爲1,之後的每個數都等於之前的任意兩個數(可以相同)相加,問最後一個數是N的情況下,求一個最短的序列 思路: 搜索,確定上下界,下界一定不小於log2(

原创 POJ-2187(旋轉卡殼)

題目:http://poj.org/problem?id=2187 今天終於耐下心來學習凸包和旋轉卡殼了,以poj的經典例題2187爲例,學習主要參考了以下兩篇博文: http://www.cnblogs.com/Booble/archi

原创 POJ-1056(Trie)

題目:http://poj.org/problem?id=1056 題意:判斷一組字符串中是否有兩個串A和串B,且A是B的前綴,通過將串依次插入Trie即可判斷當前串是否是前面串的前綴,和前面串是否有當前串的前綴。 #include <

原创 HDOJ-2835(最佳置換算法)

題目:http://acm.hdu.edu.cn/showproblem.php?pid=2835 如果數據以後都再也不會使用,則將其換出必然是最優的,但如果緩存中的數據以後都還會使用,那到底換出哪一個好呢?直觀上想,感覺換出最遠下次使用

原创 ZOJ-1635(模擬pstree)

模擬打印文件樹,難點在文件夾的開閉,如果僅僅將子文件縮進,則問題很簡單,遞歸即可,題目要求顯示文件夾的開閉(用'|'),所以直接遞歸打印不能解決(因爲可能需要在前面打印'|'),這裏我選擇將需要打印的所有符號保存在一個緩衝區char型數組

原创 最長公共子字符串(動態規劃)

和經典DP最長公共子串(不要求字符連續)不同,最長公共子字符串要求字符是連續的 class LongestSubstring { public: int findLongest(string A, int n, string B

原创 HDU-4217(樹狀數組)

題意就是在1~N中每次找到第k小的數並刪除,範圍固定第k小的數,就是樹狀數組或者線段樹的應用,一個細節是結果需要用long long,因爲262144*(262144+1)/2超過了32位表示範圍。 #include <cstdio>

原创 不用乘、除、減、平方打印前N個平方數

其實挺簡單的一個問題,原題鏈接:http://www.geeksforgeeks.org/print-squares-first-n-natural-numbers-without-using/ def PrintFirstNSquare