BZOJ5248 一雙木棋(Min Max搜尋)

2021-08-18 08:51:07 字數 738 閱讀 7443

題面

不顯然,能下棋的地方對於每一行是非嚴格遞減的

可以用乙個n+1進製數來表示這個輪廓線

狀態數就是n個球放m+1個盒子裡的方案數,不會太大

然後就是大佬們所說的對抗搜尋

#include 

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define mmst(a, b) memset(a, b, sizeof(a))

#define mmcp(a, b) memcpy(a, b, sizeof(b))

typedef

long

long ll;

const

int n=22,base=12,oo=1e9+7;

int n,m;

int a[n][n],b[n][n];

int h[n];

mapint> mp;

ll hash()

void rehash(ll x)

int dfs(ll x)

mp[x]=res;

return res;

}int main()

一雙木棋(chess)

題目描述 菲菲和牛牛在一塊 nn 行 mm 列的棋盤上下棋,菲菲執黑棋先手,牛牛執白棋后手。棋局開始時,棋盤上沒有任何棋子,兩人輪流在格仔上落子,直到填滿棋盤時結束。落子的規則是 乙個格仔可以落子當且僅當這個格仔內沒有棋子且這個格仔的左側及上方的所有格仔內都有棋子。棋盤的每個格仔上,都寫有兩個非負整...

JZOJ 5637 一雙木棋

傳送門 考場上的思路 什麼叫做最優策略?我暴力都打不來怎麼辦?好像 n,m 2 n,m 2 可以直接得出答案,m 1 m 1 也可以直接算,就這樣有了 25 25 分。但是不能坐以待斃啊!觀察了一下 n,m 2 n,m 2 是怎麼算的,發現需要做一次決策,且這次決策由後手決定。乖乖,還是寫個 dp ...

九省聯考2018 一雙木棋

我們容易知道,棋子的擺放形狀應該是乙個階梯性 某dalao 來來來,輪廓線dp!我們選擇用狀態壓縮來表示整個棋盤的排放形態 11進製壓位,每個位上的數都表示一行的狀態 這樣子我們每次對合法狀態進行拓展,dfs搜尋下去。輪到菲菲,我們期望她的得分大一些,而到牛牛,我們期望她的得分少一些。所以我們對前者...