欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1393A.Rainbow Dash, Fluttershy and Chess Coloring
Rainbow Dash, Fluttershy and Chess Coloring
题目描述
一天晚上,Rainbow Dash 和 Fluttershy 想出了一个游戏。由于小马们是朋友,她们决定在游戏中不进行竞争,而是追求共同的目标。
游戏开始于一个正方形的平面网格,初始时网格的轮廓边界已经搭建好。Rainbow Dash 拥有无限数量的浅蓝色 方块,Fluttershy 拥有无限数量的黄色 方块。
方块的放置规则如下:每次新放置的方块,必须通过一条边与之前回合中已搭建的结构相邻(注意,网格的轮廓边界初始时已搭建好)。每一回合,一只小马可以根据游戏规则放置任意数量属于她颜色的方块。
Rainbow Dash 和 Fluttershy 发现,她们可以通过这种方式在网格上构建各种图案。她们决定从简单的开始,于是决定将方块按棋盘格的方式铺满整个网格。Rainbow Dash 以速度著称,因此她关心她和 Fluttershy 至少需要多少回合,才能用方块铺满整个网格并形成棋盘格图案。请你帮她计算这个最小回合数!
由于小马们可能会在不同大小的棋盘上多次进行游戏,Rainbow Dash 请你计算多个不同大小网格的最小回合数。
两种颜色的棋盘格图案指的是:每个方格仅与颜色不同的方格通过边相邻。
输入格式
第一行包含一个整数 (),表示游戏网格的数量。
接下来的 行,每行包含一个整数 (),表示游戏网格的边长。
输出格式
对于每个游戏网格,输出用方块铺满形成棋盘格图案所需的最小回合数。
说明/提示
对于 的网格,小马们可以用两步完成棋盘格铺设:

由 ChatGPT 4.1 翻译
样例
2
3
4
2
3
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |