原创 hdu 1087

求的是最長上升子序列的和。數組dp[i]表示以i結尾的最長上升子序列的和,因爲開始每個數字都可以單獨的成爲一個子序列,所以初始化dp[i]用num[i]。 參考文章:算法筆記p433 #include<algorithm> #includ

原创 hdu 1160

題目給出不確定數量的老鼠的體重和速度,求一個最長序列,其中的老鼠體重遞增,速度遞減。最後輸出序列的長度和老鼠的序號。 LIS的變通題,由於要輸出序列,所以下標從1開始,並且用pre記錄上一個老鼠的位置參考文章:http://www.voi

原创 hdu 1171

題意是給出一些東西及他們的價值,然後將這些物品分爲價值相等或最相似的兩部分。 參考文章:母函數入門:http://www.wutianqi.com/?p=596母函數進階:https://blog.csdn.net/xiaofei_it/

原创 hdu 1176

用數塔模型解決,用dp[time][side]來表示t秒在x位置掉下的餡餅。然後自下而上的去求一個最大和。 參考文章:http://www.cnblogs.com/sjy123/p/3242730.htmlhttps://blog.csd

原创 POJ 1321 棋盤問題

#include<cstdio> #include<cstring> using namespace std; char chess[10][10]; bool book[10];//記錄此列有無被放置棋子 int n,k,num,way

原创 hdu 1028題解

題意是把一個整數劃分爲多個整數的和的形式。遞推遞歸的思路:用split[n,m]來表示把n分爲若干個整數,其中最大的整數爲m,那麼分爲以下幾種情況: n<m,這個時候同等於split[n,n]。 n=m,這個時候可以出單獨的{m},所以可

原创 hdu 1074

狀態壓縮題,要注意的是有多種情況扣分相同,那麼要按照字典序輸出,也就是輸入時在前,那麼輸出也要在前。具體看代碼註釋。參考文章: http://www.voidcn.com/article/p-fsgosnqv-bpb.html http:

原创 poj 3984

求從左上角到右下角的最短路徑,1是路,2是牆,只可以前後左右的走。 dfs: #include<cstdio> #include<cstring> using namespace std; int maze[5][5]; int ans

原创 poj 3087

題意是給出2副牌堆,然後放置第二副牌的最下面的一張,再疊放第一副牌最下面的一張,然後依照此順序疊放2個牌堆最下面的一張牌,直至成爲一副新的牌。之後下半部分和上半部分成爲新的2副牌。然後給出一副合成牌的順序,如果可以通過疊堆得到所要的順序,就

原创 poj 1426

參考文章: http://user.qzone.qq.com/289065406/blog/1303946967    http://www.cnblogs.com/ACShiryu/archive/2011/07/24/2115356.h

原创 poj1207

3n+1問題是一個簡單有趣而又沒有解決的數學問題。這個問題是由L. Collatz在1937年提出的。克拉茲問題(Collatz problem)也被叫做hailstone問題、3n+1問題、Hasse算法問題、Kakutani算法問題、T