1. 程式人生 > >Bash遊戲 (簡單博弈)

Bash遊戲 (簡單博弈)

假設一個石子堆有n個石子,每次最多隻能取m個,zzx和whl兩位大神準備進行競賽,兩位大神每一步走的都是最優的。zzx大神先開始,最後把石子取完的人獲勝,作為旁觀者的你能不能告訴我們,是zzx大神贏了,還是whl大神贏了?

實現程式碼:

#include<iostream>
#include<cstdio>
using namespace std;
int main() {
    int n,m;
    int t;
    scanf("%d", &t);
    while(t--) {
        scanf("%d %d", &n, &m);
        if
(n%(m+1)==0)printf("second\n"); else printf("first\n"); } return 0; }

這種型別的博弈稱作BashGame。 
假設剛剛開始n=m+1,那麼第二個取的人必勝。那麼我們有如下結論:

令 n=(m+1)*r+s 其中(r>1,0<=s<m+1)。如果s=0的話,先手每次取k個,後手只要取(m+1-k)個即可,後手必贏。如果s!=0的話,先手者第一次取s個,後手第一次取k個,接下來先手只要取(m+1-k)個即可,先手必贏。

相關推薦

Bash遊戲 簡單博弈

假設一個石子堆有n個石子,每次最多隻能取m個,zzx和whl兩位大神準備進行競賽,兩位大神每一步走的都是最優的。zzx大神先開始,最後把石子取完的人獲勝,作為旁觀者的你能不能告訴我們,是zzx大神贏了,

51nod_1490: 多重遊戲樹上博弈

== names lin its code bit 都是 namespace 51nod 題目鏈接 該題實質上是一個樹上博弈的問題。要定義四種狀態——2先手必勝 1先手必敗 3可輸可贏 0不能控制 葉子結點為先手必勝態; 若某結點的所有兒子都是先手必敗態,則該結點為先手必

51nod 1066 - Bash遊戲簡單博弈

不為 input turn urn brush 如果 esp nod bash 有一堆石子共有N個。A B兩個人輪流拿,A先拿。每次最少拿1顆,最多拿K顆,拿到最後1顆石子的人獲勝。假設A B都非常聰明,拿石子的過程中不會出現失誤。給出N和K,問最後誰能贏得比賽。 例如N

H - 卡牌遊戲簡單期望

Description 小貝喜歡玩卡牌遊戲。某個遊戲體系中共有N種卡牌,其中M種是稀有的。小貝每次和電腦對決獲勝之後都會有一個抽卡機會,這時系統會隨機從N種卡中選擇一張給小貝。普通卡可能多次出現,而稀有卡牌不會被重複抽到。小貝希望收集到K種稀有卡牌,她想知道期望需要多少次獲勝才能實現這個目標

poj 2484 A Funny Game 簡單博弈

題目連結:poj 2484 題意:給出n個順時針排列的n枚硬幣,每次只能取一個或者取相鄰的兩枚,Alice先取,問:誰取走最後一枚硬幣? 題解:這題很gou,看看程式碼你就知道了。 ///當n>=3時,Alice先拿,會把環拆成一條鏈,假如剩下奇數個硬幣數, ///那麼Bob只

2015ACM/ICPC亞洲區瀋陽站-——Pagodas簡單博弈

nn pagodas were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, labelled from 11 to nn. However, only

Calendar Game簡單博弈

Adam and Eve enter this year's ACM International Collegiate Programming Contest. Last night, they played the Calendar Game, in celebration of this con

卡牌遊戲簡單期望

Description 小貝喜歡玩卡牌遊戲。某個遊戲體系中共有N種卡牌,其中M種是稀有的。小貝每次和電腦對決獲勝之後都會有一個抽卡機會,這時系統會隨機從N種卡中選擇一張給小貝。普通卡可能多次出現,而稀有卡牌不會被重複抽到。小貝希望收集到K種稀有卡牌,她想知道期望需要多少次獲

51nod 1534 棋子游戲簡單博弈

分類列舉情況就行了,分成四個板塊。 #include<iostream> using namespace std; struct point{ int x,y; }; i

計蒜客-跳躍遊戲簡單dp

inf PE sizeof size stream 分析 數組初始化 整數 CA 題目鏈接:https://nanti.jisuanke.com/t/20

NYOJ832 合並遊戲簡單狀壓DP

tdi 分享 define 遊戲 har set pri max temp AC代碼: #include<stdio.h> #include<string.h> #define max(a,b) (((a)>(b))?(a):(b

hihocoder1545 : 小Hi和小Ho的對弈遊戲樹上博弈&nim博弈

描述 小Hi和小Ho經常一起結對程式設計,他們通過各種對弈遊戲決定誰擔任Driver誰擔任Observer。 今天他們的對弈是在一棵有根樹 T 上進行的。小Hi和小Ho輪流進行刪除操作,其中小Hi先手。   遊戲的規則是:每次刪除,小Hi或小Ho都可以選擇一個非根節點,將以該節點為

第六屆湖南省省賽 射擊遊戲概率博弈,dfs

射擊遊戲 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 10  Solved: 6 [Submit][Status][Web Board] Description A和B在玩一個射擊遊戲,戰場由若干單位正方形積木組成。

uva 10474 Where is the Marble?簡單

content mil stdlib.h std lib [0 數據 main pre 我非常奇怪為什麽要把它歸類到回溯上,明明就是簡單排序,查找就OK了。wa了兩次,我還非常不解的懷疑了為什麽會 wa,原來是我居然把要找的數字也排序了,當時僅僅是想著能快一點查找。所以

POJ 1321 棋盤問題簡單DFS

clas mission sample 標記 span ssi algo std spa                                                           棋盤問題 Time Limit: 1000MS

POJ 1979 Red and Black簡單DFS

either www enter ont false num present direction roo Red and Black Description There is a rectangular room, covered with square tile

UVa 12716 GCD XOR 簡單證明

i++ map esp typedef -a type print const max 題意: 問 gcd(i,j) = i ^ j 的對數(j <=i <= N ) N的範圍為30000000,有10000組例子 思路:GCD(a,b) = a^b =

HDU 1848sg博弈 Fibonacci again and again

ace main esp 數量 mode oid else while n) Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K

lightoj 1036 - A Refining Company簡單dp

esp scan blank 最大值 typedef 轉移 iostream ret for 題目鏈接:http://www.lightoj.com/volume_showproblem.php?problem=1036 題解:設dp[i][j]表示處理到(i,j)

第十一章 springboot + mongodb簡單查詢

req all bool pan 可能 set 如果 創建 使用 1、mongodb在mac上的安裝 下載mongodb,https://www.mongodb.org/ 解壓縮到一個指定文件夾,如:/Users/enniu1/Desktop/zjg/mongodb