HDU2897 邂逅明下

2021-08-18 18:32:48 字數 1814 閱讀 8087

problem description

當日遇到月,於是有了明。當我遇到了你,便成了侶。

那天,日月相會,我見到了你。而且,大地失去了光輝,你我是否成侶?這注定是個淒美的故事。(以上是廢話)

小t和所有世俗的人們一樣,期待那百年難遇的日食。駐足街頭看天,看日月漸漸走近,小t的脖子那個酸呀(他堅持這個姿勢已經有半個多小時啦)。他低下仰起的頭,環顧四周。忽然發現身邊竟站著位漂亮的mm。天漸漸暗下,這mm在這街頭竟然如此耀眼,她是天使嗎?站著小t身邊的天使。

小t對mm驚呼:「緣分吶~~」。mm卻毫不含糊:「是啊,500年一遇哦!」(此後省略5000字….)

小t趕緊向mm要****,可mm說:「我和你玩個遊戲吧,贏了,我就把我的手機號告訴你。」小t,心想天下哪有題目能難倒我呢,便滿口答應下來。mm開始說遊戲規則:「我有一堆硬幣,一共7枚,從這個硬幣堆裡取硬幣,一次最少取2枚,最多4枚,如果剩下少於2枚就要一次取完。我和你輪流取,直到堆裡的硬幣取完,最後一次取硬幣的算輸。我玩過這個遊戲好多次了,就讓讓你,讓你先取吧~」

小t掐指一算,不對呀,這是不可能的任務麼。小t露出得意的笑:「還是mm優先啦,呵呵~」mm霎時愣住了,想是對小t的反應出乎意料吧。

她卻也不生氣:「好小子,挺聰明呢,要不這樣吧,你把我的郵箱給我,我給你發個文字,每行有三個數字n,p,q,表示一堆硬幣一共有n枚,從這個硬幣堆裡取硬幣,一次最少取p枚,最多q枚,如果剩下少於p枚就要一次取完。兩人輪流取,直到堆裡的硬幣取完,最後一次取硬幣的算輸。對於每一行的三個數字,給出先取的人是否有必勝策略,如果有回答win,否則回答lost。你把對應的答案發給我,如果你能在今天晚上8點以前發給我正確答案,或許我們明天下午可以再見。」

小t二話沒說,將自己的郵箱給了mm。當他興沖沖得趕回家,上網看郵箱,哇!mm的郵件已經到了。他發現文字長達100000行,每行的三個數字都很大,但是都是不超過65536的整數。小t看錶已經下午6點了,要想手工算出所有結果,看來是不可能了。你能幫幫他,讓他再見到那個mm嗎?

input

不超過100000行,每行三個正整數n,p,q。

output

對應每行輸入,按前面介紹的遊戲規則,判斷先取者是否有必勝策略。輸出win或者lost。

sample input

7 2 4

6 2 4

sample output

lost

win題解

巴什博弈的變形,我們依然可以通過湊p+

q p+q

的倍數來達到不可告人的目的。

如果石子數本來就是p+

q p+q

的倍數,那麼顯然先手必敗;如果不是,那麼就看先手能不能一步湊出p+

q p+q

的倍數,當石子數對p+

q p+q

取模時,餘數大於

q q

也是先手必勝的,因為這樣也可以通過湊p+

q' role="presentation" style="position: relative;">p+q

p+q的方式,使後手每次取石子時對p+

q p+q

取模的餘數總小於

p p

,從而強迫後手取走最後一顆石子;反之,當一開始餘數就小於

p' role="presentation" style="position: relative;">p

p時,先手必敗。

**

#include

using

namespace

std;

int n,p,q;

void ac()

printf("win\n");

}int main()

HDU 2897 邂逅明下

題意 一堆石子n個,a,b兩人輪流從中取,每次取的石子必須在 區間 p,q 內,若剩下的石子少於p個,取石者須全部取完。最後取石子的者輸。給出n,p,q,問先取者是否有必勝策略?思路 巴什博弈變形 證明 假設先手為a,後手為b,初始n個,除最後一次每次取的石子個數必須 在 區間 p,q 內,則 1....

HDU 2897 邂逅明下

題意是給n個錢幣,每個人最少取p顆,最多q顆,少於p顆時必須全部全完,取最後一下的人輸,判斷先手是贏還是輸。完全就是那個取1 m的模型的類推,把1換成p,m換成q,於是用類似的做法解決。include include include include include include include i...

hdu 2897 邂逅明下

bash博弈變形2 初始狀態下有石子n個,除最後一次外其他每次取物品個數必須在 p,q 之間,最後一次取硬幣的人輸。hdu 2897 這題狀態稍微複雜一些,並且勝負條件與之前相反,一般bash博弈裡每次取個數可以看作在 1,m 之間,勝負手判斷為 n 1 m 因此我們可以猜想每次取 p,q 的勝負手...