当前位置: 首页 > news >正文

L1-104 九宫格(分数20)

题目描述

游戏规则是:将一个 9×9 的正方形区域分成 9 个 3×3 的正方形宫位,并且保证1到9这九个数字在每一行,每一列,每一个宫位都只出现一次。

输入格式

给出一个正整数n,随后给出n个填好数的九宫格,请你分别判断它们是否满足游戏规则。

输出格式

对于满足规则的九宫格, 输出 1 ,否则输出 0。

解题思路

可以用set来检查每一行,每一列,和每一个宫位,没啥难点,但是检查宫位的时候比较麻烦,直接上代码。

#include <iostream>
#include <vector>
#include <set>using namespace std;int main()
{int n;if (!(cin >> n)){return 0;}while (n--){int grid[9][9];bool ok = true;for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){cin >> grid[i][j];}}// 1. 校验每一行for (int i = 0; i < 9; i++){set<int> s;for (int j = 0; j < 9; j++){if (grid[i][j] >= 1 && grid[i][j] <= 9){s.insert(grid[i][j]);}}if (s.size() != 9) ok = false;}// 2. 校验每一列for (int j = 0; j < 9; j++){set<int> s;for (int i = 0; i < 9; i++){if (grid[i][j] >= 1 && grid[i][j] <= 9){s.insert(grid[i][j]);}}if (s.size() != 9) ok = false;}// 3. 校验九宫格 (3x3)for (int r = 0; r < 9; r += 3){for (int c = 0; c < 9; c += 3){set<int> s;for (int i = r; i < r + 3; i++){for (int j = c; j < c + 3; j++){if (grid[i][j] >= 1 && grid[i][j] <= 9){s.insert(grid[i][j]);}}}if (s.size() != 9) ok = false;}}if (ok){cout << 1 << endl;}else{cout << 0 << endl;}}return 0;
}

反思

使用循环结构要懂得变通

  • 有时候 变量i或j可以在循环外面定义,因为有时候会用到最后的i或j,而不用额外开两个变量 去想方设法记录i或j

  • 有时候循环条件可以不写,在循环里,在具体情况下去停止。

  • 有时候,不一定要在循环语句中写更新条件,可以在具体情况下更新;更新的时候也要变通,一定要写成i++吗,比如本题i+=3,如果下意识地写i++ , 反而会在下面想如何处理宫位浪费时间

——————————————————————————————————————————————————————————————————————————————————————————————————————————————

http://www.jsqmd.com/news/472361/

相关文章:

  • FlexLayout 主题定制教程:打造个性化的 React 布局界面
  • 万通金套装是什么?分期乐兑换后的回收折扣与注意事项 - 畅回收小程序
  • Hyperf微服务架构设计终极指南:构建高可扩展分布式系统的10个核心技巧
  • 阿里云内网服务器Docker镜像下载终极指南:SCP传输实战
  • SQLDelight性能优化终极指南:10个提升数据库操作效率的实用技巧
  • 2026年互联网大厂(Java岗)面试真题汇总
  • Android列表优化终极指南:BaseAdapterHelper与ViewHolder模式深度解析
  • 如何用Cofounder快速创建RESTful API与AsyncAPI文档:完整指南
  • 2026佛山北美黑胡桃木家具厂家综合实力深度观察:规模、工艺与服务三大维度考量 - 资讯焦点
  • Spring Boot技术体系庞杂,刚入行的程序员如何快速上手?
  • 10分钟快速集成PHP OAuth2-Server:构建安全认证系统的终极指南
  • 2026软考高项好口碑靠谱推荐:哪些机构凭顶尖师资与超高通过率上榜 - 资讯焦点
  • 终极指南:如何使用Infinigen约束求解器的贪婪算法生成无限逼真场景
  • 终极HTML DOM自定义指南:打造惊艳光标与滚动条特效
  • Infinigen动画策略系统:如何为3D对象创建自然运动轨迹的终极指南
  • 2026 省选联考游记
  • 终极Pendulum入门指南:10分钟掌握Python日期时间操作
  • 阿里Redis全栈小册:基础+应用+原理+集群+拓展+源码
  • FluentHub:Windows平台终极GitHub客户端,让代码管理如丝般流畅
  • 2026年垃圾箱厂家专业选型指南:垃圾桶/智能垃圾箱/移动垃圾箱/公共垃圾箱/户外垃圾箱供应商精选 - 品牌推荐官
  • Vue项目实战:5分钟搞定高德地图可视化大屏(附完整代码)
  • 终极Symfony Translation组件类型安全指南:使用PHPStan提升代码质量的5个关键步骤
  • 2026年NMN品牌优选榜单:看清各自亮点,理性决策不踩坑 - 资讯焦点
  • IT大环境不好,Java程序员储备一些什么技术才能立足?
  • ArcGIS网络分析实战:从交通规划到公共设施管理的5个实用场景
  • FBCTF多语言支持终极指南:如何为你的CTF竞赛添加国际化功能
  • 阿梵D三维重建技术见刊《世界复合医学》——全息三维重建影像辅助胸腔镜肺段切除的临床应用效果 - 速递信息
  • SPSS启动报错?三步搞定‘并行配置不正确‘问题(附运行库下载链接)
  • Awesome-Humanoid-Robot-Learning核心功能解析: locomotion与manipulation研究综述
  • WS63E开发板快速上手:从驱动安装到Hello World打印(HiSpark Studio实战)