JZOJ(中山纪中) 2018.01.26【NOIP普及组】模拟赛D组 第二题

本文介绍了一个基于拿取2的次方数量黄金的游戏策略问题。玩家需决定先手能否取胜及取胜时首次拿取的最小黄金数量。通过分析不同黄金总量下的胜负情况,探讨了最佳策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1984.【普及组模拟赛】游戏(atlantis.pas/cpp) 
(File IO):
 input:atlantis.in output:atlantis.out

时间限制: 1000 ms  空间限制: 128000 KB  具体限制  

Goto ProblemSet

题目描述

      Atlantis Island沉没以前,传说中的猫老大和 King是好朋友……King很喜欢赌博,这次 King和老朋友猫老大多年不见,于是便邀请猫老大来玩一个游戏,猫老大应邀参加了。 King 拿出了 n块黄金(0<n<10^1000002)猫老大暗自想:咋来这么多钱的„„,现在 King 和猫老大轮流从黄金中拿走一些,每人每次拿走的块数是 2的次方(例如 1,2,4,8,16……)谁能拿走最后一个黄金,谁就获胜。现在 King让猫老大先拿,双方都使用最好的策略来玩的话,谁能取得胜利呢?现在请你来帮助猫老大,他能胜利吗?不仅如此, King 现在提出要和猫老大玩三局,猫老大想知道每局他是否能获胜,并且,你还要告诉猫老大,如果必胜的话,他第一步最少拿走的金块数量。

输入

三行每行一个数 n(0<n<10^1000002)

输出

对于每局,如果 King必胜则输出一行“ King will win.”否则第一行输出“ MaoLaoDa willwin.”第二行输出他第一次拿的最小数量。

样例输入

8
4
2

样例输出

MaoLaoDa will win.
2
MaoLaoDa will win.
1
MaoLaoDa will win.
2

数据范围限制

【样例输入 2
3
8
2
【样例输出 2
King will win.
MaoLaoDa will win.
2
MaoLaoDa will win.
2
【数据范围】
0<n<10^1000002

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值