hdu 1078 記憶化搜尋

2021-08-07 16:07:36 字數 505 閱讀 2080

給定一張n*n的圖,每個格仔上有一些豆子,初始位置是(0,0),每次只能向乙個方向走最多m步,然後停下吃掉這個格仔上的豆子,但有個限制是當前格仔上的豆子必須比之前呆的乙個格仔裡的豆子多,問最多能吃多少豆子。

#include #include #include#include#define ll long long

using namespace std;

int dp[2005][2005];

int a[1005][1005];

int n,k;

int dir[4][2]=;

int dfs(int x,int y)}}

return dp[x][y]=ans+a[x][y];

}return dp[x][y];

}int main()

{ while(~scanf("%d%d",&n,&k))

{if(n==-1&&k==-1)

return 0;

for(int i=0;i

hdu 1078 記憶化搜尋

hdu 1078 題意 每次可以朝乙個方向走k格,必須走到乙個數值比當前值大的點,問最多數值加起來能有多少,走到不能再走。一開始定義錯了,定義dp i j 為以 i,j 為終點時所能得到的最大值。dp i t dx j t dy max dp i t dx j t dy dp i j a i t d...

hdu 1078(記憶化搜尋)

題意 老鼠每次最多走k步停下來,停下的這個位置只能比上乙個停留的位置大,並獲取其價值,每次只能水平或垂直走,問最大能得到的價值 解題思路 這道題可以用記憶化搜尋解決,dp i j 表示老鼠在位置 i,j 時可以達到的最優值。因為dp的狀態是乙個有向無環圖,剛開始想會不會走死迴圈,但是這道題有乙個條件...

HDU 1078 記憶化搜尋

題目鏈結 題意是老鼠一開始在 0,0 點,每個點都有乳酪數目,如果老鼠走到 的話就獲得所有乳酪,老鼠只能水平走和垂直走,問怎麼走才能獲得最 酪數。輸入n和k,n是地圖大小,k是老鼠能走多遠。很簡單的一道題,注意超時,記住用記憶化,貌似就因為要記憶化才被hdu歸類進dp的。下面是 include in...