vijos1655萌萌的糖果博弈
生活随笔
收集整理的這篇文章主要介紹了
vijos1655萌萌的糖果博弈
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
//這個題是我今天做一道題,發(fā)現(xiàn)自己不會博弈論,所以去hzwer上找博弈論題,第一題是這個,發(fā)現(xiàn)這個題我看題面都看不懂。。。
題目已經(jīng)寫出來了,這是一道博弈論題
根據(jù)wzy 大佬的說法,博弈論題先找規(guī)律
然后給出我找規(guī)律的過程
先引用hzwer博客上的一句話
必勝策略是“所謂有必勝策略是指,無論對方如何操作,自己總有辦法取勝。”就是說:我一操作保證剩下的一堆無論你怎么分你都贏不了!那我必勝.否則我不必勝
假設(shè)取了之后剩了一堆數(shù)量為x (如果分解后的兩堆中有1,那么另一方必勝,所以為了簡潔,省略掉存在1的分解情況) 如果x=1,MM必勝,即如果未取堆為1的一方必勝 如果x=2,只能被分成兩堆(1,1),SD必勝,即如果未取堆為2的一方能輸 如果x=3,只能被分成兩堆(1,2),SD可以勝,即如果未取堆為3的一方能輸 如果x=4,可以分成(2,2),在分解為(2,2)情況下,兩個能輸?shù)亩?#xff0c;必然會有一個輸?shù)舻氖S喽?#xff0c;所以MM必勝(這一點此后的證明(zhao gui lv)中不再贅述),即如果未取堆為4的一方能贏 如果x=5,可以分成(2,3),兩個能輸?shù)亩?#xff0c;MM必勝,即如果未取堆為5的一方能贏 如果x=6,可以分成(3,3),兩個能輸?shù)亩?#xff0c;MM必勝,即如果未取堆為6的一方能贏 如果x=7,可以分成(2,5)(3,4),不存在兩個能輸?shù)亩训那闆r,所以SD能勝,即如果未取堆為7的一方能輸 如果x=8,可以分成(2,6)(3,5)(4,4),不存在兩個能輸?shù)亩训那闆r,所以SD能勝,即如果未取堆為8的一方能輸 如果x=9,可以分成(2,7),兩個能輸?shù)亩?#xff0c;MM必勝,即如果未取堆為9的一方能贏 如果x=10,可以劃分為(2,8)(3,7)(4,6)(5,5),(3,7)為兩個能輸?shù)亩?#xff0c;即如果未取堆為10的一方能贏 如果x>=11,可以有2,3,4,5,6,7,8,9,無需討論引用自hzwer博客: > 想想看:如果有一堆糖果個數(shù)>=10.那它就能分出任意的0 1 2 3 4 5 6 7 8 9 個的堆…沒有探討的意義….知推0~9的規(guī)律..呵呵..0沒有用的…就是這樣,然后是我的代碼
#include <iostream> #include <cstdio> using namespace std; int main() {string a,b;char c,d;while(1){cin>>a;if(a=="-1")break;cin>>b;c=a[a.length()-1];d=b[b.length()-1];if((c=='2'||c=='3'||c=='7'||c=='8')&&(d=='2'||d=='3'||d=='7'||d=='8'))cout<<"SheepDaddy\n";elsecout<<"MengMeng\n";}return 0; }總結(jié)
以上是生活随笔為你收集整理的vijos1655萌萌的糖果博弈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查找与清除线程插入式木马
- 下一篇: 域名邮箱和邮件服务器