題目要求: 乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。求可以滑落的最長長度。
題目解析:
首先要先排一下序,因為只能高度遞減才能滑行。之後就很簡單了,就是簡單dp。
即:要求的滑坡是一條節點遞減並依次相鄰的最長路徑,可以先根據高度將所有的點進行排序,在i點的時候,遍歷0~i-1個點(公升序排序,i前面的點的高度一定小於等於i),取相鄰點間的大的路徑長度
**如下:
#include #include#include
#include
#include
#include
#define n 400
#define inf 0x3f3f3f3ftypedef
intll;
using
namespace
std;
inttt;
struct
node
q[20010
];int cmp(const
void *a,const
void *b)
intmain()
}qsort(q,tt,
sizeof(q[0
]),cmp);
for(int i=1;i)}}
printf(
"%d\n
",mat);
}return0;
}
POJ1088 滑雪 DP,查表法
dp 查表法 查表法的前提 1.不能迴圈查詢 例如,本題目 查詢dp i,j 需要在內部查詢dp i j 可能繼續進行遞迴,但因為遞迴過程總是沿著海拔降低,故不可能回過頭來再次查詢dp i,j 2.正確處理遞迴 查表 終止條件 本題中,如果點 i,j 旁邊沒有低於它的點,則len i j 為0,直接...
POJ 1088 滑雪 (深搜 DP)
題目描述 input 第一行輸入兩個數n,m代表滑梯範圍行n和列m 1 n,m 100 下面是n行,每行有m個整數,代表高度h,0 h 20000 output 輸出乙個值,代表glory能夠在滑滑梯上面滑行的最長長度是多少 sample input 3 39 1 2 5 6 7 8 4 3 sam...
poj 1088 滑雪問題
這題剛開始我想到的是搜尋,但是超時了,所以要進行優化,聽說這是dp經典題,當時就瘋了,dp才初學,想到的是 dp i,j max dp 四個方向 但寫出來不太理想,主要是不懂的遞迴間數值的變化,導致一直出不來答案!後來看題解啊,改啊,搞啊,許久才出來個能a的 並且還0ms了,看來還得多熟悉下 inc...