這道題就是找出一條最長連續遞減序列,並求出其長度。可以用記憶化深搜,求出每一點最長序列的長度,然後求最大值即可。
**如下:
#include#includeusing namespace std;
const int n=105;
int a[n][n],m,n,f[n][n];
inline int max(int a,int b)
inline int max(int a,int b,int c,int d)//求四個數的最大值
int d(int x,int y,int h)//x,y為座標,h為前乙個位置的高度
int main()
{ int t;
cin>>t;
while(t--)
{ int i,j,k,maxi=-0xffff;
cin>>m>>n;
memset(f,-1,sizeof(f));
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=m;i++)//求出每一點的最長序列,並不斷更新最大值
for(j=1;j<=n;j++)
{ k=d(i,j,0xffff);
if(maxi
NYOJ 10 Skiing 記憶化搜尋
題目的意思是 給你乙個n m的矩陣 讓你從中找出一條最長的遞減序列 能走四個方向 上下左右 這道題需要用到 記憶化搜尋 普通搜尋會超時 記憶化搜尋就是在原本記錄該點是否到過的陣列中儲存一些其他資訊 比如上一次到這個點的序列長度是多少 或者直接在這個陣列中儲存答案 兩種都可以 include incl...
NYOJ 10 skiing 記憶化搜尋)
想著藍橋杯還有20天左右就開始了,計畫是把歷年真題都敲一遍,再把之前寫過的nyoj的題目重新的複習一下,並且就是把所有寫過的題重新的整理到部落格上面來,這是開始的第一篇部落格,接下來我會好好的整理好我的部落格,養成乙個良好的 風格,跟複習習慣,一步一步的成長,慢慢的掙扎,直到有一天,可以以長劍嘯天 ...
POJ 1088 Skiing 記憶化搜尋)
description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 ...