CF1719A Chip Game

代码短吧。

Description

一个大小 n×m 的棋盘,你要从左下角走到右上角。

每步可以选择向上或向右走任意奇数步,不可走出棋盘,问 Burenka 先走,能否获胜。

Analysis

博弈类游戏题。作为 A 题,可以找规律。

Easy version

先不考虑二维,只考虑一维问题,走一条长度为 n线段谁能获胜。

既然提到了奇数,显然会想到通过奇偶性去解决问题:两人共需走的长度为 nBurenka 每次移动后,二人移动总长度为奇数;Tonya 每次移动后,二人移动总长度为偶数。获胜条件是某人走最后一步到达 n

故若 n 为奇数,则 Burenka 会走最后一步并获胜;反之,若 n 为偶数,则必然是 Tonya 走最后一步并获胜。

Hard version

一维问题考虑清楚后,现在再考虑二维。

如何解决二维问题?由于只能向右或向上移动,所以可以进行降维:不考虑何时转弯,二人需要移动的总长度总为 n+m,因为不能走回头路

即转化为线性(一维)问题:走一条长度为 n+m 的线段谁能获胜。

Code

思路想通,代码极其简短。

#include <stdio.h> int n, m; int main(void) { int t; for (scanf("%d", &t); t--; ) { scanf("%d %d", &n, &m); if (n + m & 1) puts("Burenka"); //判奇偶 else puts("Tonya"); } return 0; }

The end. Thanks.

(一键三连


__EOF__

本文作者Miracle Hydrogen
本文链接https://www.cnblogs.com/dry-ice/p/cf1719a.html
关于博主:可耐拽冰!
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
posted @   Dry_ice  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示