多維動歸第一題

2022-05-01 13:24:07 字數 725 閱讀 4371

好了這題就是較為簡單的座標類dp(感覺),總之是乙個二維的區域,需要一步一步地向可前進方向dp,而倒退過來,就是每乙個地方取之前的地方裡最多的乙個進行選擇,然後得出本格數量。

那麼本題只能往3個方向走,如果本所在格為i,j,那麼....

i,ji-1,j-1

i-1,j

i-1,j+1

可以走到i,j的三個格仔將這麼表示。可得出狀態轉移方程。

f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j];

其中a[i][j]為本格所獲能量值。

以上了解了之後本題就相當簡單了。

#include#include#include#includeusing namespace std;

#define tcl(a,b,c) for(a=b;a<=c;a++)

const int maxx=201;

int n,m,a[maxx][maxx],f[maxx][maxx],i,j,x,y;

int main()

}tcl(i,1,n)

}int ans;

ans=max(max(f[x][y],f[x][y-1]),f[x][y+1]);//因為只能朝題中所說的三個方向走,所以自然是在這其中取最大。

printf("%d",ans);

return 0;

}

每日一題 101 正規表示式匹配(動歸 遞迴)

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。所謂匹配,是要涵蓋整個字串 s的,而不是部分字串。說明 示例 1 輸入 s aa p a 輸出 false 解釋 a 無法匹配 aa 整個字串。示例 2 輸入 s aa p a 輸出 true 解釋 因為 代表可以匹配零...

滴滴第一題

方法 先求字首和,將pair 字首和的值,字首和標號i 加入multimap中,搜尋每一種字首和的lowerbound和upbound,計算兩者之差,與字首和為零的標號比較,取最大值。include include include includeusing namespace std define ...

杭電第一題

getchar的用法 首先getchar是在stdio.h中宣告一下才能用,所以標頭檔案中必須有stdio.h。他接收的是字元!他的操作原理 當編譯執行至getchar 時,使用者輸入了字元按下回車鍵後,他以回車鍵為開始標識,開始乙個乙個從stdio流中讀取字元,每次讀取字元後,getchar函式的...