news 2026/8/9 16:27:27

洛谷 P4136:谁能赢呢?← 棋盘配对博弈(多米诺覆盖博弈)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷 P4136:谁能赢呢?← 棋盘配对博弈(多米诺覆盖博弈)

【题目来源】
https://www.luogu.com.cn/problem/P4136

【题目描述】
小明和小红经常玩一个博弈游戏。给定一个 n×n 的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向
上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输
假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?

【输入格式】
输入文件有多组数据。
输入第一行包含一个整数 n,表示棋盘的规模。
当输入 n 为 0 时,表示输入结束。

【输出格式】
对于每组数据,如果小明最后能赢,则输出 Alice,否则输出 Bob,每一组答案独占一行。​​​​​​​

【输入样例】
2
0​​​​​​​

【输出样例】
Alice​​​​​​​

【数据范围】
对于 20% 的数据,保证 1≤n≤10;
对于 40% 的数据,保证 1≤n≤1000;
对于 100% 数据,保证 1≤n≤10000。

【算法分析】
● 采用棋盘配对博弈(
多米诺覆盖博弈)分析:
(1)n 为偶数:整张 n*n 棋盘可以完美被若干 1*2 骨牌铺满。
先手随便走入某一块骨牌的其中一格,后手都可以走到同一块骨牌剩下的另一格。
无论先手怎么走,后手永远有格子可走,最终先手一定会先无路可走 → 先手败,后手必胜。
(2)n 为奇数:去掉起点格子后,剩余棋盘恰好可以被 1*2 骨牌完美覆盖。
先手第一步占据中心 / 起点后,后手走入任意骨牌一格,先手都能对应走到骨牌另一格,后手率先无路可走 → 后手败,先手必胜。
简化判定规则:
n为偶数,先手赢;n为奇数,后手赢

【算法代码】

#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n && n) { if(n%2==0) cout<<"Alice\n"; else cout<<"Bob\n"; } return 0; } /* in: 2 0 out: Alice */



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/163572528
https://blog.csdn.net/hnjzsyjyj/article/details/158802453



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 16:26:30

MySQL数据库核心架构与生产环境优化实战

1. MySQL&#xff1a;数据库领域的常青树 第一次接触MySQL是在2008年&#xff0c;当时还在用5.0版本。转眼十多年过去&#xff0c;这个开源关系型数据库已经发展到8.0系列&#xff0c;依然是Web应用开发的首选。作为LAMP架构中的"M"&#xff0c;MySQL凭借其稳定性、易…

作者头像 李华
网站建设 2026/8/9 16:19:51

《网络协议安全》全套PPT课件(太原理工大学)

《网络协议安全》全套PPT课件&#xff08;太原理工大学&#xff09; 课件内容&#xff1a; 第一章 网络体系结构.pptx 第二章 网络协议第三章 互联网.pptx 第四章网络漏洞的分类.ppx 第五章物理网络层概述.ppx 第六章网络层协议(第1讲&#xff09;pptx 第六章网络层协议(第2讲&…

作者头像 李华
网站建设 2026/8/9 16:19:38

最简记忆:让 Agent 记住你的名字(第77篇-E63)

系列「企业级 AI Agent 实现拆解」E63 篇&#xff0c;Part 14 记忆篇第一章。上一篇收完了 RAG——那解决的是「Agent 懂业务」。这篇开始讲记忆&#xff0c;解决的是「Agent 记得你」。 先给一个可能让你意外的事实&#xff1a;Eino 框架里没有官方的 memory 组件。记忆不是框…

作者头像 李华
网站建设 2026/8/9 16:19:33

5步掌握AMD Ryzen处理器调试神器:SMUDebugTool完全指南

5步掌握AMD Ryzen处理器调试神器&#xff1a;SMUDebugTool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…

作者头像 李华
网站建设 2026/8/9 16:16:17

Minecraft地图嵌入游戏CG:三种技术方案与模组开发实战

1. 从标题拆解&#xff1a;这到底是个什么项目&#xff0c;解决了什么问题&#xff1f; 看到“我在MC建的bs2地图添加了游戏CG”这个标题&#xff0c;很多MC玩家和地图创作者的第一反应可能是好奇和兴奋。但更实际的问题是&#xff1a;这到底是怎么实现的&#xff1f;它解决了M…

作者头像 李华
网站建设 2026/8/9 16:14:08

Python实战:CNN图像识别从入门到部署

1. 项目概述&#xff1a;CNN图像识别实战入门 去年帮朋友做一个宠物品种识别小程序时&#xff0c;我重新审视了传统图像处理方法的局限性。当需要区分金毛和拉布拉多这种特征相似的犬种时&#xff0c;手工设计特征提取器简直是一场噩梦。这正是卷积神经网络(CNN)大显身手的场景…

作者头像 李华