hdu 5996 階梯博弈,dfs,水

2022-03-04 08:22:04 字數 878 閱讀 1532

hdu 5996  dingyeye loves stone

題意:一棵樹n個點,每個點有a[i]枚石子。兩人輪流選乙個點,至少取一顆石子移到它的父親結點,最後不能操作的人敗。問先手勝負。

tags:好久以前的一場bc,看到沒補,果斷a掉。

就是階梯博弈,偶數層的移動沒用。

#includeusing

namespace

std;

#pragma comment(linker, "/stack:102400000,102400000")

#define rep(i,a,b) for (int i=a;i<=b;i++)

#define per(i,b,a) for (int i=b;i>=a;i--)

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

#define inf 0x3f3f3f3ftypedef

long

long

ll;const

int n = 100005

;int

n, t, a[n], x, cnt;

ll ans;

vector

g[n];

void dfs(int u, int

fa)int

main()

rep(i,

0,n-1) scanf("

%d", &a[i]);

dfs(

0, 0

);

if(ans) puts("

win"

);

else puts("

lose");

}return0;

}

hdu5996 階梯nim博弈

第一次接觸到階梯nim博弈 看了這篇部落格,講得比較清楚 大意就是給一顆樹 樹的節點上放有石子,每次只能把石子往父節點移動一下,規定不能移動者輸。看了階梯博弈後大概就能懂這題的意思了,直接把深度為奇數的節點異或起來就可以了 include include include include includ...

hdu5996 hdu5724 階梯博弈

學習文章連線 hdu5724 題目連線 如下 不太懂 include include include include include include include include define ll long long using namespace std const int n 1003 in...

HDU 3389 階梯博弈變形

n堆石子,每次選取兩堆a b,a b 2 1 a b 3 a b,不能操作者輸 選石子堆為奇數的等價於選取步數為奇數的,觀察發現 1 3 4 是無法再移動的 步數為0,然後發現以6為週期,取模就好了 date 2017 10 14 19 18 00 filename hdu 3389 基礎階梯博弈變...