time limit: 1 sec memory limit: 128 mb
submit: 15 solved: 12
[submit][status][web board]
freda和rainbow是超自然之界學校(preternatural kingdom university,簡稱pku)魔法學院的學生。為了展示新學的魔法,ta們決定進行一場對弈~~~
起初freda面前有n堆魔法珠,其中第i堆有ai顆。freda和rainbow可以輪流進行以下操作:
1.選擇n堆中魔法珠數量大於1的任意一堆。記該堆魔法珠的數量為p,p有b1、b2……bm這m個小於p的約數。
2.施展魔法把這一堆魔法珠變成m堆,每堆各有b1、b2……bm顆魔法珠。
3.選擇這m堆中的一堆魔法珠,施展魔法令其消失。
注意一次操作過後,魔法珠的堆數會增加m-2,各堆中魔法珠數量的總和可能會發生變化。
當輪到某人操作時,如果每堆中魔法珠的數量均為1,那麼ta就輸了。
freda和rainbow都採取最好的策略,從freda開始。請你**一下,誰能獲勝呢?
本題僅有乙個測試點,包含多組資料,以eof結尾。
每組資料的第一行包含乙個整數n。
第二行包含n個整數ai。
對於每組資料,在兩人均採取最佳策略的前提下,若freda能獲勝,輸出freda;若rainbow能獲勝,輸出rainbow。
32 2 2
31 3 5
fredarainbow
#include#include#include
using
namespace
std;
const
int maxn=10000+10
;int
f[maxn],v[maxn],num,ans,a[maxn];
int sg(int
x) }
for (i=1;i*i<=x;i++)
}for (i=0;v[i]==now;i++);
return f[x]=i;
}int
main()
return0;
}
魔法遊戲 博弈論
題目大意 給一顆樹,每個位置有乙個權值,每次乙個人可以選擇森林中的某棵樹的根節點,設其權值為a aa,那麼這個人可以選擇乙個k 2,a 1 k in 2,a 1 k 2,a 1 然後讓a aa變成 ak left lfloor frac ak right rfloor ka 如果乙個點權值變為0那麼...
2012藍橋杯 取球博弈 基礎博弈論
取球博弈 今盒子裡有n個小球,a b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7或者8個。輪到某一方取球時不能棄權!a先取球,然後雙方交替取球,直到取完。被迫拿到最後...
博弈論 Nim博弈
1.nim博弈的起源很早,至於歷史我們就不再說了,直接說它的使用場景。1 依舊是兩個人博弈,但是物品時n堆,每一堆有ai個。2 每個人可以挑選一堆取走若干個,但是不能不取。3 最先取完所有物品的人獲勝。4 結論 所以堆的物品的數量異或起來是0,先手必敗。2.乙個nim博弈的例項 nim博弈。乍一看這...