链接:https://ac.nowcoder.com/acm/contest/11746/D
来源:牛客网
题目描述
长达数日的春日祭终于告一段落,作为巫女的朝野芳乃在打扫完神社本决定好好享受一下久违的宁静。然而守护了神刀数百年的丛雨难耐寂寞,希望芳乃能陪她一起玩扑克消解愁闷。
芳乃并不擅长市井的游戏,所以总是输多赢少。而昨日被芳乃的神乐舞深深吸引,以致一早就前来建实神社希望能再睹芳华的你碰巧听见了此事。尽管不知道为什么美丽的巫女要自言自语地为玩扑克而苦恼,但你毅然决然地毛遂自荐,希望能为芳乃一解眉间愁。
芳乃告诉了你丛雨准备了n张扑克牌作为牌堆,每人每次至多从牌堆顶部抽k张牌,至少抽1张牌。牌堆底部的最后一张牌作为乌龟,抽中的将输掉这一轮比赛。芳乃想知道在你的帮助下,她和丛雨都采取积极策略时,她自己是否一定能获胜。作为被丛雨邀请的一方,每轮游戏都是芳乃先抽。
因为看不见丛雨而误认芳乃罹患精神分裂的你在不由感叹红颜薄命的同时,决定尽全力帮助芳乃完成她的委托。
声明:本题中的所有角色在剧情发生时均已超过18岁。
输入描述:
第一行包含一个整数T,表示共有T组测试数据。
每组测试数据共一行,包含两个正整数n和k,分别表示牌堆中有n张牌和每次抽取最多抽取k张。
数据保证T,n,k≤1000000。
输出描述:
对于每组测试数据给出一行结果。
如果芳乃必胜,则输出“yo xi no forever!”,
否则输出 ”ma la se mi no.1!“。
示例1
输入
4
1 1
23 2
6 4
114 514
输出
ma la se mi no.1!
yo xi no forever!
ma la se mi no.1!
yo xi no forever!
答案如下
#include<cstdio>
int main()
{
int t;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
int n=0,k=0;
scanf("%d%d",&n,&k);
if((n-1)%(k+1)!=0) printf("yo xi no forever!\n");
else printf("ma la se mi no.1!\n");
}
return 0;
}
主要知识点:巴什博弈
参考百科:https://baike.baidu.com/item/%E5%B7%B4%E4%BB%80%E5%8D%9A%E5%BC%88/1819345?fr=aladdin
相关视频:
https://www.bilibili.com/video/BV1Lf4y1B7gd?from=search&seid=6010206465354552467
(侵权的话请联系作者)