hdu 2571 命運(遞推,請小心)

2022-08-20 03:15:12 字數 1582 閱讀 8780

題目

//不能廣搜,會超記憶體

//可以用dp思想模擬

//map 後來儲存的是 儲存由前面推來的最大的幸運總值的點

//下標從1開始,不然倍數會有問題

//ac **:

ac**

//

不能廣搜,會超記憶體

//可以用dp思想模擬

//map 後來儲存的是 儲存由前面推來的最大的幸運總值的點

//下標從1開始,不然倍數會有問題

//又錯了那麼多次。。。

//重寫。。。

//求過!!!

#include

#include

#include

using

namespace

std;

intmain()

}for(i=1;i<=n;i++)

}if(maxx1][j])maxx=map[i-1

][j];

if(maxx1])maxx=map[i][j-1

];

if(!(i==1&&j==1

)) map[i][j]+=maxx;}}

printf(

"%d\n

",map[n][m]);

}return0;

}

//模擬時最好不要分開,因為我分開寫錯了——求高人指點為什麼我分開寫錯掉了,明明思路是一樣的啊

//錯掉的**:

//

不能廣搜,會超記憶體

//可以用dp思想模擬

//temp 儲存由前面推來的最大的幸運總值的點

#include

#include

#include

#include

using

namespace

std;

intmain()

}//沒有初始化?

memset(temp,-21000000,sizeof

(temp));

temp[

1][1]=map[1][1

];

//(x,y+1)

for(j=2;j<=m;j++)

temp[

1][j]=map[1][j]+temp[1][j-1

];

//(x+1,y)

for(i=2;i<=n;i++)

temp[i][

1]=map[i][1]+temp[i-1][1

];

//(x,y*k)

for(j=2;j<=m;j++)}}

for(i=2;i<=n;i++)

}//(x+1,y)

temp[i][j]=temp[i][j]>(map[i][j]+temp[i-1][j])? temp[i][j]:(map[i][j]+temp[i-1

][j]);}}

printf(

"%d\n

",temp[n][m]);

}return0;

}

為什麼這樣分開寫錯呢

HDU 2571 命運(簡單DP)

穿過幽谷意味著離大魔王lemon已經無限接近了!可誰能想到,yifenfei在斬殺了一些蝦兵蟹將後,卻再次面臨命運大迷宮的考驗,這是魔王lemon設下的又乙個機關。要知道,不論何人,若在迷宮中被困1小時以上,則必死無疑!可憐的yifenfei為了去救mm,義無返顧地跳進了迷宮。讓我們一起幫幫執著的他...

命運 HDU 2571 (簡單DP)

思路 簡單dp,起點 左上角a 1 1 終點 右下角a n m 點p i j 有多種走法選擇,下走p i 1 j 右走p i j 1 或者右走j的倍數 大於1 p i j k 我們不如倒著看,p i j 從這些數中選擇最大的值作為自己走的值 狀態轉移方程 dp i j max dp i 1 j dp...

HDU 2571 命運 (動態規劃)

穿過幽谷意味著離大魔王lemon已經無限接近了!可誰能想到,yifenfei在斬殺了一些蝦兵蟹將後,卻再次面臨命運大迷宮的考驗,這是魔王lemon設下的又乙個機關。要知道,不論何人,若在迷宮中被困1小時以上,則必死無疑!可憐的yifenfei為了去救mm,義無返顧地跳進了迷宮。讓我們一起幫幫執著的他...