日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vijos P1196吃糖果游戏[组合游戏]

發布時間:2025/3/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vijos P1196吃糖果游戏[组合游戏] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

Matrix67和Shadow正在做一個小游戲。

桌子上放著兩堆糖果,Matrix67和Shadow輪流對這些糖果進行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成兩堆(可以不相等)留給對方操作。游戲如此進行下去,糖果數會越來越少,最后必將出現這樣一種情況:某人吃掉一堆糖果后發現另一堆里只剩一塊糖果不能再分了。游戲規定此時該操作者吃掉最后這一塊糖果從而取勝。

這個游戲是不公平的。對于任意一種初始狀態,總有一方有必勝策略。所謂有必勝策略是指,無論對方如何操作,自己總有辦法取勝。

Matrix67和Shadow將進行10次游戲,每一次游戲中總是Matrix67先進行操作。Matrix67想知道每一次游戲中誰有必勝策略。

格式

輸入格式

輸入數據一共10行,每行有兩個用空格隔開的正整數,表示一次游戲開始時桌子上兩堆糖果分別有多少個。

對于50%的數據,這些正整數均不超過100;
對于70%的數據,這些正整數均不超過10 000;
對于100%的數據,這些正整數均不超過10 000位。

輸出格式

輸出十行字符串。這些字符串只能是“Matrix67”或“Shadow”,它們表示對應的十行輸入數據中有必勝策略的一方。

請注意大小寫。

樣例1

樣例輸入1[復制]

1 1 1 2 1 3 1 4 1 5 2 1 2 2 2 3 2 4 2 5

樣例輸出1[復制]

Matrix67 Matrix67 Matrix67 Matrix67 Matrix67 Matrix67 Shadow Shadow Matrix67 Matrix67

限制

各個測試點1s

來源

Matrix67原創


?

規定了獲勝狀態

從(x,1)開始遞推

設(x,a),吃掉x,留下的a分開,如果能分成兩部分c和d使(x,c)和(x,d)都是P狀態,(x,a)就是n狀態;如果不得不存在一個N狀態的,(x,a)就是P狀態

遞推完1...10后>10的%10就行了

還有一種分析:(%Matrix67)

當游戲狀態屬于前者時,Matrix67可以把糖果數被5除余1、4或正好除盡的那一堆分成糖果數被5除余數都是2或3的兩堆(他總能做到這一點),而對方不得不把其中一堆糖果又分出新的糖果數被5除余1、4或正好除盡的一堆留給Matrix67操作。這樣逼著對方總是面臨必敗的狀態,使得最后對方不得不把2個糖果或者3個糖果分成兩堆,從而使Matrix67贏得游戲。反過來,當Matrix67面臨兩堆糖果的數目被5除余數都是2或3的狀態時,Shadow總可以取勝。

?

#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int N=1e4+5,INF=1e9+5; char a[N],b[N]; int main(){for(int i=1;i<=10;i++){scanf("%s%s",a,b);int n=strlen(a)-1,m=strlen(b)-1;char c=a[n],d=b[m];if((c=='2'||c=='3'||c=='7'||c=='8')&&(d=='2'||d=='3'||d=='7'||d=='8')) puts("Shadow");else puts("Matrix67");} }

?

?

?

總結

以上是生活随笔為你收集整理的Vijos P1196吃糖果游戏[组合游戏]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。