牛客練習賽21 黑妹的遊戲 記憶化搜尋

2021-10-12 05:21:33 字數 709 閱讀 1871

傳送門

非常典型的記憶化搜尋博弈

定義f [i

][j]

f[i][j]

f[i][j

]為從(i,

j)

(i,j)

(i,j

)開始造成的差值大小(先手-後手)

那麼先手希望這個值大,後手希望小

就在各自的回合取max

maxma

x或取min

minmi

n即可

#include

using

namespace std;

int f[

509]

[509

],a[

509]

[509

],n,m,ok[

509]

[509];

bool

isok

(int x,

int y)

intdfs

(int x,

int y)

ok[x]

[y]=1;

int now;if(

(x+y)%2

==0)//後手選擇,必然是取min

else

return f[x]

[y]=now;

}int

main()

}

牛客練習賽21 B 黑妹的遊戲II

有乙個n m的棋盤,每格仔有非負分數,黑妹先手,每次只能下上乙個人選擇的方格的右方或者下方,黑妹和黑弟都在知道最優策略的情況下,從左上角開始到右下角結束,求黑妹最後獲得的分數減去黑弟的分數差是多少。我們由黑妹先手可得,黑妹一定可以獲得左上角和右下角的分數,我們採用逆向dp的思路。dp i j m i...

牛客練習賽21 B 黑妹的遊戲II(博弈DP)

黑妹和黑弟又聚在一起玩遊戲了,這次他們選擇在乙個n m的棋盤上玩遊戲,棋盤上的每個方格都有乙個非負的分數,遊戲從左上角開始右下角結束,雙方交替的選擇乙個方格並獲得方格上相應的分數,一方選擇的方格必須在上一步另一方選擇的方格 的右邊或者下面,黑妹先開始。現在黑妹想知道,如果雙方都採取最優策略 最優策略...

牛客練習賽67 牛妹的蘋果樹

題意 輸出給定的點序號區間中兩點間距離的最大值 思路 考慮倍增思想,st u i 代表從u號節點開始往後2 i個連續數中的直徑的兩個端點。st u i 一定是由 st u i 1 和 st u 2 i 1 i 1 轉移過來的 思考怎麼轉移,顯然對應6種情況 1.若兩個塊中的直徑的端點倆倆之間不存在l...