ACM PKU 1088 滑雪 經(jīng)典的動(dòng)態(tài)規(guī)劃備忘錄方法(記憶化搜索/Memory function )
http://acm.pku.edu.cn/JudgeOnline/problem?id=1088非常經(jīng)典的一道動(dòng)態(tài)規(guī)劃題,AC的時(shí)候心情簡(jiǎn)直舒暢到了極點(diǎn).
時(shí)間限制是1000MS,如果直接用DFS肯定超時(shí)的.
馬上想到動(dòng)歸,
用opt[i][j]記錄從點(diǎn)node[i][j]出發(fā)的最短路徑(不算本身,只算延伸;也就是初始值為0)
狀態(tài)轉(zhuǎn)移方程opt[i][j]=max{ opt[i+1][j],opt[i-1][j],opt[i][j+1],opt[i][j-1] } +1
也就是說(shuō),opt[i][j]的值等于從node[i][j]的上下左右四個(gè)方向出發(fā)所滑的最長(zhǎng)值+1;
而這道題并不是簡(jiǎn)單的動(dòng)歸,計(jì)算opt[i][j]的過(guò)程需要類似DFS的遞歸方法.這就是記憶化搜索.
Problem Id:1088 User Id:lnmm
Memory:152K Time:0MS
Language:C++ Result:Accepted

2




3

4

5

6

7

8



9

10

11

12

13

14

15



16

17

18

19



20

21

22



23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38



39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

posted on 2007-09-17 00:48 流牛ζ木馬 閱讀(5156) 評(píng)論(8) 編輯 收藏 引用