原创 求字符串最長連續不重複的字串

思路:dp[c]記錄字符c上一次出現的位置。l記錄上一個連續不重複字串的左邊界,這樣就可以更新連續不重複子串的長度。我這裏輸出的是第一次出現的最長的連續不重複子串。 #include <algorithm> #include <iostr

原创 LightOJ 1068 - Investigation(數位DP)

題意:給定區間求被k整除且數位和被k整除的個數。 思路:數最多10位,所以數位和不會超過90,那麼k > 90時一定爲0了。因而dp數組開到90就好。 #include <algorithm> #include <iostream> #i

原创 HDU 5591 ZYB's Game(取石子)

題意:AB選手猜數字。正確數字爲X,若選手猜的數字爲i,若i比X小,則主持人會告訴他[1, i]都不是正確答案,比X大則[i, n]都非答案。但其實選手是知道答案的(假裝不知道23333)。誰最後被逼的猜X誰就輸。給定n問後首勝的X有幾個

原创 爲什麼time(time_t *)函數裏還有一個loc參數而不是time(void)

據說....(據說。。。)是由於time()最開始定義的時候,time_t並不是long型,那時候早期的C還沒有long int型,而且函數不能返回數據結構。系統只有16位整數,表示時間的話需要數據機構或是數組纔可以,參數就用一個time

原创 LightOJ 1071 - Baker Vai(水DP)

題意:兩個機器人從(1, 1)到(n, m),除了終點外不可相遇。求路徑最大價值。 思路:水DP。 #include <algorithm> #include <iostream> #include <sstream> #include

原创 LightOJ 1064 - Throwing Dice(概率DP)

題意:擲n次骰子,點數和不小於x的概率。 思路:概率dp。不用記錄分母,因爲n次就是6^n。 #include <algorithm> #include <iostream> #include <sstream> #include <cs

原创 POJ2785 4 Values whose Sum is 0

題意:給4個數組,問有多少種組合可以使得a + b + c + d = 0。 思路:預處理A + B,然後每次算C + D求匹配的A +B的個數。 O(n^2 log n)。 #pragma warning(disable:4996) #

原创 HDU2546 飯卡(01揹包)

題意:中文題。 思路:01揹包,求能購買的價值最後減去。由於大於等於5時纔可購買,所以價錢大的最後買,也就是先更新大的,再更新小的。所以要從大到小排序。 #include <algorithm> #include <iostream> #