hdu 2516 取石子遊戲(博弈,找規律)

2021-07-03 06:29:41 字數 466 閱讀 3930

題意:

寫**時瞎幹,最後得到提示才悔恨當時沒有認真研究。。。

剩餘d=n-k<=2*k -->n<=3*k

如果想要贏,必須滿足k。所以k-->[1,n/3].

各個狀態:

通過狀態分析,可以看出,必敗點就是斐波那契數列。

#include #includeusing namespace std;

int f[50];

void init()

}int main()

}if(!lose)printf("first win\n");

else printf("second win\n");//second win

}return 0;

}

HDU 2516 取石子遊戲(博弈)

思路 手推了一下,發現n是斐波那契數時是必敗態 includeusing namespace std define ll long long int fact 105 void init int main description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完...

hdu2516 取石子遊戲(FIB博弈)

1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出 second win 先取者勝輸出 first win input 輸入有多組.每組第1行是2 n 2 31.n 0退出.output 先取者負輸出 secon...

hdu 2516 取石子遊戲

題目 hdu 2516 取石子遊戲 思路 fibonacci nim 列舉前幾項,發現2,3,5是必敗態,不能說明什麼。對於當前的狀態,第一次不能全部取完,其餘的每次取的時候,不能超過前者上一次的兩倍。對於當前狀態n,最多能取的是 ceil n 3 1 和 前一狀態取的的兩倍 兩者間的最小值。然後這...