NYOJ-取石子(一)
取石子(一)
時間限制: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
AC//巴什博弈
#include <stdio.h>
int main()
{
int n,N,M;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&N,&M);
if(N%(M+1)==0)
{
printf("Lose\n");//總是留下(M+1)的倍數個會輸
}
else
{
printf ("Win\n");
}
}
return 0;
}
巴什博弈:巴什博弈:只有一堆n個物品,兩個人輪流從這堆物品中取物, 規定每次至少取一個,最多取m個。最後取光者得勝。
顯然,如果n=m+1,那麼由於一次最多隻能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現瞭如何取勝的法則:如果n=(m+1)r+s,(r為任意自然數,s≤m),那麼先取者要拿走s個物品,如果後取者拿走k(≤m)個,那麼先取者再拿走m+1-k個,結果剩下(m+1)(r-1)個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下(m+1)的倍數,就能最後獲勝。
而這個問題是首先取光者獲勝,不難看出,只要將物品剩餘個數一直保持在(m+1)的倍數個時第一個取東西的人獲勝。
因此判斷條件是?n%(m+1)==0
相關推薦
NYOJ-取石子(一)
取石子(一) 時間限制:3000 ms | 記憶體限制:65535 KB 難度:2 描述 一天,TT在寢室閒著無聊,和同寢的人玩起了取石子游戲,而由於條件有限,他/她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為N(1<=N
nyoj 23-取石子(一)(博弈)
panel -c 遊戲 tdi print 個數 btn 最小值 accept 23-取石子(一) 內存限制:64MB 時間限制:3000ms Special Judge: No
取石子(七)(NYOJ 833)
取石子(七) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:1 描述 Yougth和Hrdv玩一個遊戲,拿出n個石子擺成一圈,Yougth和Hrdv分別從其中取石子,誰先取完者勝,每次可以從中取一個或者相鄰兩個,Hrdv先取,輸出勝利著
牛牛取快遞(一)從dfs到dijkstra以及堆優化的dijkstra
並不是 rim 鄰接表 != 性能 AD [] 鄰接矩陣 不同 由於上一篇博客的第三題“牛牛取快遞”上次還未ac,因此今天特意再來嘗試一下,上次使用暴力dfs搜索最短路徑超時的我,在大佬們解題思路的“熏陶”之下,終於在我的記憶深處找回了那被封印依舊的dijkstra算法。
BZOJ5435: 取石子(博弈)(佔位)
5435: 取石子 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 35 Solved: 10[Submit][Status][Discuss] Descriptio
nyoj 整數劃分(一)(二)
先來談談寫這兩道題的感受,整數劃分(一)剛開始做這道題,dp和遞迴都不會寫,是用深搜寫的,不過用深搜寫 整數劃分(二)就不行了,鐵定超時。 昨晚和今晚終於把這兩道題的遞迴和dp全看懂了(看別人部
easyui.utils.js 自己封裝的 使用easyui過程中方便操作和取值(一)
注意:該easyui.utils.js 會在我自己使用過程中不斷完善,大家一起進步。 在js上新增 以下 (function($){ function 其他方法。 })(jQuery); 的目的是為了防止該js檔案中的function與瀏覽器本身的一些functi
【NOI2015模擬9.9】取石子(博弈)
The Solution 個人覺得這種題要不就切掉要不就爆0了,所以我們要大膽地猜結論,然後去證明。(這也是一種思路吧) 因為一次只能取走一顆石子,因此對於所有石子,我們能進行的操作總數就是 s = 石子總數 + 石子堆數 - 1 . 我們可以感
計蒜客OJ:程式設計:取石子(博弈論)
蒜頭君和花椰妹今天都很無聊。兩個人相約一起玩遊戲。蒜頭君取出了一堆奇形怪狀的石子,並且把它分成了三堆。他和花椰妹輪流從裡面取石子,取出最後一顆石子的人勝利。花椰妹覺得這樣沒意思,於是她要求加入一個限制條件:每個人每次只能取出 1,3,71,3,7 或 99 顆石子。石子數目不夠的時候不能多取,如還剩 22 顆
nyoj 737 石子合併(一)
#include<string.h> #include<stdio.h> #include<algorithm> using namespace std; #define INF 0x3fffffff int a[205],dp[205][205],sum[205]; in
nyoj 737 石子合併(一) 【區間dp】
石子合併(一) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次
nyoj 737 石子合併(一) 區間動規
描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代
NYOJ 石子合併(一)經典區間DP
石子合併(一) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次
NYOJ 737 石子合併(一)(區間dp)
石子合併(一) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合
NYOJ 737 石子合併(一)(環形)
描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代價最小值。 輸入有多組測試資料,輸入到檔案結束。 每組測試資料
NYOJ題目737石子合併(一)(區間dp)
石子合併(一) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將
nyoj 82迷宮尋寶(一)
ret 接下來 set class 但是 ios char pre 移動 迷宮尋寶(一) 時間限制:1000 ms | 內存限制:65535 KB 難度:4 描述 一個叫ACM的尋寶者找到了一個藏寶圖,它根據藏寶圖找到了一個迷宮,這是一個很特別的迷宮,迷宮裏有N個編過號
用VLC讀取攝像頭產生RTSP流,DSS主動取流轉發(一)
sdp nco con alt 分享 pad 流轉 publish enc 用VLC讀取攝像頭產生RTSP流,DSS主動取流轉發(一) 攝像機地址是192.1.101.51,VLC運行在192.1.101.77上,DSS服務器架設在192.1.101.
Python爬蟲實例(一)爬取百度貼吧帖子中的圖片
選擇 圖片查看 負責 targe mpat wid agent html headers 程序功能說明:爬取百度貼吧帖子中的圖片,用戶輸入貼吧名稱和要爬取的起始和終止頁數即可進行爬取。 思路分析: 一、指定貼吧url的獲取 例如我們進入秦時明月吧,提取並分析其有效url如下
python 爬蟲(一) requests+BeautifulSoup 爬取簡單網頁代碼示例
utf-8 bs4 rom 文章 都是 Coding man header 文本 以前搞偷偷摸摸的事,不對,是搞爬蟲都是用urllib,不過真的是很麻煩,下面就使用requests + BeautifulSoup 爬爬簡單的網頁。 詳細介紹都在代碼中註釋了,大家可以參閱。