看了大神寫的尼姆博弈感覺自己之前學的都沒啥用。。大神完完全全的把尼姆博弈所有情況用五個狀態表示出來,
(中對於s2,t2的定義的前半句是對的,後半句不對不用理會,而且為了保證s必勝t必敗,應該對調s0和t0的定義,但是大佬就是這麼定義的,凑活看吧。。)
感覺簡直強,所以應用到這道題之中,不難分析搶奪到s1則先手必勝,而s2可以保證搶奪到s1,而且s0也是先手必勝(偶數個孤獨堆),對應的t2和t0為必敗態,由於必敗態只有兩種情況,所以我們分析必敗態,簡潔明瞭直接掛**即可
#include#include#include#include#include#include#include#include#includeusing namespace std;
int main()
if((num1 >= 2 && ! num2) || (! num1 && num2))
printf("brother\n");
else printf("john\n");
}return 0;
}
HDU 1907 John 尼姆博弈
近期在看博弈系列,搞完了巴什博弈 威佐夫博弈,接下來就是這個尼姆博弈。這一系列博弈型別可以概括為 巴什博弈 從一堆石子中拿石子,一次拿1 m個。威佐夫博弈 從兩堆石子中拿石子,方法 任選一堆石子拿k個石子 k 1 方法 從兩堆石子中拿相同數量的石子 當然所拿的數要 1 尼姆博弈 從三堆石子中拿石子,...
hdu 1907 尼姆博弈
題意 sample input 2 3 3 5 1 1 1 sample output john brother 給你 t組案例,給你n堆 下面n堆每堆有多個a個 每次取1 a個,最後取完的輸掉 解 關於尼姆博弈,玄學 什麼時間一定輸 1,奇數個1 2,存在a 1 面對xor和為0 xor和為零代表...
hdu1907 尼姆博弈
尼姆博弈的性質。最後乙個取輸。若a1 a2 a3.a4 0表示利他態t,不然為利己態s。充裕堆 1個堆裡的個數大於2.t2表示充裕堆大於等於2,t1表示充裕堆大於等於1,t0表示無充裕堆。s2表示充裕堆大於等於2,s1表示充裕堆大於等於1,s0表示無充裕堆。必敗態 t2,s0 必勝態 s2,s1,t...