L先生与晨跑(找规律 先手后手博弈)

本文介绍了一个简单的博弈游戏,通过分析游戏规则和示例输入输出,给出了一种解决方法。游戏涉及两个人物L先生和Z,他们通过拿取一定数量的扑克牌来决定谁将进行晨跑。文章提供了一个C++实现的示例代码。

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


1468: L先生与晨跑

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 1000   Solved: 381
[ Submit][ Status][ Web Board]

Description

早起晨跑是一件痛苦的事情,好在可以代打(嘘,别让体育老师知道),为了决定谁去打卡,L先生和朋友Z打算玩一个游戏,L先生从抽屉里随机拿出K张扑克牌。

规则如下:每人至少拿一张,最多拿N张,谁先拿光扑克牌就明天就可以不用早起打卡,而另一个人就要下去打卡了。当然L先生和朋友Z都不是吃素的,各个心里打着小算盘,而友好的L先生决定让Z先拿。

Input

第一行包含一个正整数T,表示有T组测试数据(0<T<100000),每个测试包含一个正整数K(1≤K≤55000)和一个正整数N(1≤N≤2000),分别表示L拿出的扑克牌数和每人最多拿的牌数。 

Output

每组测试数据输出一行,如果L先生下去打卡则输出L,否则输出Z。

Sample Input

2
5 5
6 5

Sample Output

L
Z

HINT


思路:

假设n=5,那么枚举k从6到13的情况,找规律

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
 
int main(){
    int t;
    while(~scanf("%d",&t)){
        while(t--){
            int k,n;
            scanf("%d%d",&k,&n);
            if(k<=n){
                printf("L\n");
                continue;
            }
            int c=k%(n+1);
            if(c==0)printf("Z\n");
            else printf("L\n");
        }   
    }
    return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值