BISHI35 【模板】巴什博弈

求解代码

java 复制代码
 public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer in = new StreamTokenizer(br);

        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
        in.nextToken();
        int t = (int) in.nval;
        for (int i = 0; i < t; i++) {
            in.nextToken();
            int n = (int) in.nval;
             in.nextToken();
            int m = (int) in.nval; 
            
            if(n%(m+1)==0){
                out.println("NO");
            }else{
                out.println("YES");
            }
            
        }

        out.flush();
        out.close();
        br.close();
    }

小贴士

  • n = k*(m+1)(n%(m+1)==0):无论先手取 x 个(1≤x≤m),后手都可以取 (m+1)-x 个,最终后手总能取到最后一个物品 ➡️ 先手必败;

  • n ≠ k*(m+1):先手可以先取 n%(m+1) 个,让剩余物品数为 k*(m+1),此时后手陷入必败局面➡️先手必胜。

相关推荐
史呆芬16 分钟前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud
IT界的老黄牛21 分钟前
限流命中后该怎么办:直接丢、阻塞等待、延迟重投三种姿势的取舍
java·rocketmq·redisson·令牌桶·削峰·分布式限流
易筋紫容1 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
888CC++1 小时前
C++ 快速学习指南:从入门到进阶的实战路线
开发语言·c++
daad7771 小时前
记录matlab状态机demo
java·网络·matlab
小小晓.1 小时前
C++记:函数
开发语言·c++·算法
牡丹雅忻12 小时前
AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
java·开发语言·c#
连续讨伐2 小时前
php小结
开发语言·php
学者猫头鹰2 小时前
Java 8 核心新特性
java
进击的程序猿~2 小时前
Go 并发底层原理面试学习指南
开发语言·面试·golang