hdu5996 階梯nim博弈

2021-07-25 16:37:40 字數 448 閱讀 6275

第一次接觸到階梯nim博弈 看了這篇部落格,講得比較清楚:

大意就是給一顆樹 樹的節點上放有石子,每次只能把石子往父節點移動一下,規定不能移動者輸。

看了階梯博弈後大概就能懂這題的意思了,直接把深度為奇數的節點異或起來就可以了

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

int main()

{ int t;

scanf("%d",&t);

while(t--)

{ int n;

scanf("%d",&n);

int d[100005];

d[0] = 0;

for(int i = 1;i

hdu 5996 階梯博弈,dfs,水

hdu 5996 dingyeye loves stone 題意 一棵樹n個點,每個點有a i 枚石子。兩人輪流選乙個點,至少取一顆石子移到它的父親結點,最後不能操作的人敗。問先手勝負。tags 好久以前的一場bc,看到沒補,果斷a掉。就是階梯博弈,偶數層的移動沒用。includeusing nam...

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 基礎階梯博弈變...