有的人,天天在說自己打cf太菜,要學線性規劃,卻連第一步都沒邁出去,不會吧,不會吧,不會那個人就是你吧 ——f+跑來寫部落格的時間都可以用來學幾個點
咳咳咳言歸正傳,這是我第一篇部落格,用來記錄我假期演算法的學習之路,先立下flag,以後我要每天一更!(也許這樣自己就不會咕咕咕)
步驟:階段、狀態、決策、策略、狀態轉移方程
性質:最優化原理、無後效性原則
具體的解釋就是:
那就來個基礎的試試手吧:
poj3176
也就是個普通的數塔嘛
我嘗試了以下三種寫法:
法一:基礎dp
#include
#include
#include
using
namespace std;
intmain()
}if(n==1)
cout<
[1]<
//注意特判只有一層的情況
else
} cout<
}return0;
}
法二:逆向dp(最優)
不用特判,不用考慮邊界,不用多開陣列,不用遍歷底層。
#include
using
namespace std;
int dp[
360]
[360];
intmain()
}for
(int i=n-
1;i>=
1;i--)}
cout<
[1]<
return0;
}
法三:記憶化搜尋
#include
#include
#include
using
namespace std;
int dp[
360]
[360];
int a[
360]
[360];
int***
(int i,
int j)
//還是要特判tat
intmain()
}int maxn=-1
;for
(int i=
1; i<=n; i++
) cout<
return0;
}
可能你會說:就這就這??
這也只是小辣雞的第一天嘛嘿嘿嘿。
DP 從零開始的動態規劃
從現在開始學習dp 來乙個入門的 時間限制 1000 ms 記憶體限制 65536 kb 觀察下面的數字金字塔。寫乙個程式查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以從當前點走到左下方的點也可以到達右下方的點。在上面的樣例中,從13到8到26到15到24的路徑產生了最大的和...
Re從零開始的每一天
廣告 日記pro 密碼請私信 雖然 re從零開始的異世界生活 這番我還沒看過 但這番真的太有名了,所以說就想到了,用一下 新的一年,希望我能更好,能把想做的事情堅持下去,也能做到我想做的事情 本日記僅限寒暑假,平時幾乎沒時間,如果記起來的話,會考慮寫一下 時間 time 計畫 plan 詳細資訊 d...
RE 從零開始的faiss庫的編譯安裝
最近facebook更新了faiss的install.md,所以其實沒什麼好寫的,但是這一路上踩了不少坑還是稍作記錄。雙系統安裝教程 win10 ubuntu16.04雙系統 gcc g gfortran安裝和降級 推薦安裝gcc6以下版本,方便後面安裝gpu和faiss。ubuntu16.04預設...