bzoj1457 棋盤遊戲

2022-05-09 11:18:09 字數 1002 閱讀 4118

題目描述:

$100*100$的棋盤上有$n$個$queen$,每個$queen$可以向左,向下,向左下移動。

兩人輪流操作,將任何乙個$queen$移動到$(0,0)$的人獲勝。

乙個位置上可以有很多$queen$,$queen$移動時不需要考慮經過路徑上是否有$queen$。

題解:這個很像$nim$遊戲,不過這個遊戲是移動乙個到$(0,0)$即可。

兩個人都不是傻子,所以有其他選擇之前都不會給對方送棋。

所以我們可以猜到起手不能到$(0,0)$的情況下,一定會有所有$queen$聚集在$(1,2)$和$(2,1)$的壯觀場面。

兩步之後,遊戲結束。

所以有棋子可以直接到$(0,0)$時,先手獲勝;

其他情況下,將最後乙個$queen$移動到$(1,2)$或$(2,1)$的人獲勝。

這兩個點相當於終止節點。

**:

#include#include

#include

using

namespace

std;

const

int n = 105

;int

t,n,sg[n][n];

int dfs(int x,inty);

for(int i=1;iif(x-i!=y)tmp[dfs(x-i,y)]=1

;

for(int i=1;iif(y-i!=x)tmp[dfs(x,y-i)]=1

;

for(int i=1;i1

;

for(int i=0;;i++)if(!tmp[i])return sg[x][y]=i;

}int

main()

if(ot)puts("

^o^"

);

else puts(ans?"

^o^":"

t_t"

); }

return0;

}

bzoj1457 棋盤遊戲

有乙個100 100的棋盤,其中左下角的編號為 0,0 右上角編號為 99,99 棋盤上有n個queen,最開始第i個queen的位置為 xi,yi 現在有兩個玩家依次來操作,每一次乙個玩家可以選擇其中乙個queen,將它跳到 xi k,yi 或 xi,yi k 或 xi k,yi k 其中k 0。...

1457 棋盤遊戲

time limit 5 sec memory limit 64 mb submit 327 solved 185 submit status discuss 有乙個100 100的棋盤,其中左下角的編號為 0,0 右上角編號為 99,99 棋盤上有n個queen,最開始第i個queen的位置為 x...

BZOJ 3106 cqoi2013 棋盤遊戲

time limit 10 sec memory limit 128 mb submit 859 solved 356 submit status discuss 乙個n n n 2 棋盤上有黑白棋子各一枚。遊戲者a和b輪流移動棋子,a先走。l a的移動規則 只能移動白棋子。可以往上下左右四個方向之...