博弈問題小試

2022-02-03 03:42:24 字數 895 閱讀 3645

題目:

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:2

描述一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他/她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n(1<=n<=1000000),兩個人輪番取出其中的若干個,每次最多取m個(1<=m<=1000000),最先把石子取完者勝利。我們知道,tt和他/她的室友都十分的聰明,那麼如果是tt先取,他/她會取得遊戲的勝利麼?

輸入第一行是乙個正整數n表示有n組測試資料

輸入有不到1000組資料,每組資料一行,有兩個數n和m,之間用空格分隔。

輸出對於每組資料,輸出一行。如果先取的tt可以贏得遊戲,則輸出「win」,否則輸出「lose」(引號不用輸出)

樣例輸入

2

1000 1

1 100

樣例輸出

lose

win對於此類問題我們可以逆向考慮:如果我先取石子剩下多少個才能使得對方必輸,簡單點就是:我取後還剩m+1個無論對方怎麼取

對方必輸。從後向前考慮設定必勝點和必敗點,只有我剩下的在m+1的倍數然後讓對方站在此處我就必勝了,因為對方無論如何去取我都能最終取完。
#include

#include

#include

#include

#include

using namespace std;

int a[30],b[30];

int main()

{int n;

cin>>n;

while(n--)

{int x,y;

cin>>x>>y;

if(x%(y+1)){

cout<<"win"<

hdoj 2147 簡單博弈 小試P N分析

超級傳送門 題目大意 kiki和zz玩遊戲,在n m的矩陣裡面,每次都是從 1,m 點出發,每次移動可以走到左,下,左下三個位置,輪到他不能移動的人算輸,每一次都是kiki先移動,給出n和m的大小,問kiki是輸還是贏。p n分析的用法 p點 前乙個選手 previous player 將取勝的位置...

紙牌博弈問題

題目 有乙個整型陣列a,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明,他們總會採用最優策略。請返回最後獲勝者的分數。給定紙牌序列a及序列的大小n,請返回最後分數較高者得分數 相同則返回任意...

紙牌博弈問題

題目 有乙個整型陣列a,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明,他們總會採用最優策略。請返回最後獲勝者的分數。給定紙牌序列a及序列的大小n,請返回最後分數較高者得分數 相同則返回任意...