第一次接觸到階梯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 基礎階梯博弈變...