題目要求: 乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。求可以滑落的最長長度。
思路:記憶搜尋水題
**:
#include #include #include #include using namespace std;
const int maxn = 105;
const int inf = 0x7fffffff;
int a[maxn][maxn];
int n, m, p, ans = 0;
bool f = false;
int xd = ;
int yd = ;
int dp[maxn][maxn] = ;
int dfs(int x, int y)
dp[x][y] = 1;
for (int i = 0; i < 4; ++i)
}ans = max(dp[x][y], ans);
return dp[x][y];
}int solve()
}memset(dp, 0, sizeof(dp));
for (int i = 1; i <= n; ++i)
}cout << ans << endl;
return 0;
}int main()
return 0;
}
POJ 1088 滑雪(遞迴 記憶化搜尋)
解題思路 中文題。題意已經很清楚了,直接搜尋就行了,不過需要記憶化,不然會超時,就是用乙個vis陣列儲存上次搜尋過的路,這樣一來,曾經搜尋過的路,就不需要再走了。ac include include include include using namespace std const int dx d...
POJ 1088 滑雪 遞迴 記憶化搜尋)
description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 ...
記憶化搜尋,poj1088
flag i j 表示以現在這個位置為起點的最遠能走的長度,熟悉下遞迴,這個題應該不難,記憶化 include include define max 105 define maxhigh 10005 typedef struct position position move 4 int flag m...