幾個dp的小總結

2021-06-23 05:11:50 字數 748 閱讀 1862

---------------------------------------

胖子很有錢。他購買了乙個先進的跑步機(真的不一樣哦~~~~)。

這個跑步機是這樣的:

1.可以把它看成乙個n*m的矩陣。有的格仔是障礙不能經過(用x表示),有的格仔是空地可以經過(用.表示)。

2.對於每乙個時段,跑步機有不同的傾斜方向。由於胖子太胖了,所以他這個時候只有2種選擇:要麼沿這個方向移動(每秒移動1個格仔),或者艱難的保持在原來的位置不動。

現在胖子已經設定好了跑步機在不同時段中的傾斜方向。眾所周知,保持在原地不動是不會做功的。胖子要**就要做功。所以他想知道他最多能夠跑多長的路程。

input

第一行5個正整數n,m,x,y,k。 x,y是胖子的初始位置,資料保證這個點不是障礙。

接下來n行,每行m個字元,表示跑步機上的地形。

最後k行,每行3個正整數s,t,w。s表示這個時段的開始時間,t(t<=10000)表示這個時段的結束時間。w表示該時段的傾斜方向。(1:上 2:下 3:左 4:右)

f[i][x][y]指在時段i,(x,y)點的最大做功。

明顯f[i][x][y]=max(f[i][x][y],f[i][x][k]+abs(y-k))//舉例:當傾斜向左右上時,行號不變,列號 y-k>ti-si+1.

設    f[i][x][j]+y-j>f[i][x][k]+y-k

f[i][x][j]-f[i][x][k]>j-k

於是可以用這個不等式建單調佇列優化dp

幾個文字編碼小總結

我們入門學習是最常用的一種編碼方式,因為1 位二進位制數可以表示2 n 種狀態 0 1 而2 位二進位制數可以表示2 2 4 種狀態 00 01 10 11 依次類推,7 位二進位制數可以表示2 7 128 種狀態,每種狀態都唯一地編為乙個7 位的二進位製碼,對應乙個字元 或控制碼 這些碼可以排列成...

一次dp的小總結

dp也學了很久了 是該放乙個小總結的時候了 其實dp很早就講了 只是當時講的很快 所以我也是迷迷糊糊的 一看到dp就發怵 現在又講一遍才好一些 dp其實跟貪心類似 只不過dp中不同的狀態都是相互影響的 有兩個性質 最優化原理和無後效性 照著書上打的.其實學了這麼久 我覺得我也算是才剛剛入門 只能敲敲...

幾個樹形dp

1.重建道路 樹形dp基礎題,f i j 表示在i這個點我和我的子樹聯通塊大小為j最少砍幾條邊。轉移的時候,到下乙個子樹時上乙個子樹所有答案先 此樹直接砍掉不貢獻答案 再繼續dp。注意更新答案時,如果不是跟答案還有 1 砍掉我和我父親的 不然洛谷會掛四個點qaq 馬上就noip了我還只能做這種水題q...