博客
关于我
Problem G. The Stones Game【取石子博弈 & 思维】
阅读量:490 次
发布时间:2019-03-07

本文共 775 字,大约阅读时间需要 2 分钟。

根据问题描述和分析,我们得出第k个人必胜的条件。为了判断游戏结果,代码采用以下规则:

  • 初始条件检查:如果石头数量n少于第k个人想要拿的数量x,则无法获胜,直接输出NO。
  • 模拟游戏状态:计算n和m的倍数关系,判断n是否可以被m整除。如果得到的余数等于x,视为必胜情况。
  • 质询系数匹配:当n可以被m整除时,检查m是否等于x,如果符合条件,则判定为必胜状态。
  • 以下是优化后的代码:

    #include 
    using namespace std;int main() { int T; cin >> T; while (T--) { int N, M, X; cin >> N >> M >> X; if (N < X) { cout << "NO" << endl; continue; } if ( (N % M == X) || ( (N % M == 0) && (M == X) ) ) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0;}

    步骤解释:

    • 输入处理:读取测试用例数T,接着读取每个测试用例的石头数N,人次数M,以及目标石子数X。
    • 初始检查:如果N小于X,直接输出NO,因为无法满足必胜条件。
    • 数学计算:计算N除以M的余数。余数等于X表示当前玩家处于必胜状态。如果余数为0且M等于X,同样满足必胜条件。
    • 输出结果:根据计算结果输出YES或NO。

    通过这种方法,可以有效判断第k个人是否有必胜策略,确保代码正确且高效。

    转载地址:http://iecjz.baihongyu.com/

    你可能感兴趣的文章
    上周热点回顾(1.23-1.29)
    查看>>
    Python 简明教程 --- 20,Python 类中的属性与方法
    查看>>
    稀疏数组
    查看>>
    83. Remove Duplicates from Sorted List
    查看>>
    痞子衡嵌入式:串口调试工具pzh-com诞生记(2)- 界面构建(wxFormBuilder3.8.0)
    查看>>
    Nmap扫描工具介绍
    查看>>
    常用Windows 快捷键
    查看>>
    linux命令-压缩与打包
    查看>>
    Oracle Orion tool check io(ORACLE Orion 工具查看以及校验IO)
    查看>>
    oracle 11g not in 与not exists 那个高效?
    查看>>
    玩玩小爬虫——试搭小架构
    查看>>
    Javascript之旅——第九站:吐槽function
    查看>>
    Sql Server之旅——第十站 看看DML操作对索引的影响
    查看>>
    双十一来了,别让你的mongodb宕机了
    查看>>
    深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
    查看>>
    Python大神编程常用4大工具,你用过几个?
    查看>>
    一文带你了解图神经网络
    查看>>
    linux kernel version magic 不一致导致的模块 加载 (insmod) 不上
    查看>>
    centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
    查看>>
    MySQL 1064 You have an error in your SQL syntax 错误解决办法
    查看>>