P10386 [蓝桥杯 2024 省 A] 五子棋对弈题解复盘
五子棋平局蓝桥杯填空题题解复盘基本信息项目内容题目编号、来源蓝桥杯 五子棋平局结果填空题训练层级B DFS 回溯知识版块DFS、回溯、棋盘枚举、状态压缩解题前・关键信号识别维度分析目标、约束、底层结构目标5×5 棋盘白棋先手共 13 个黑棋 12 个终局无人五子连珠求平局终局数量约束棋盘 25 格每格三种状态空/白/黑但终局无空格底层结构DFS 枚举 25 个格子的黑白状态回溯恢复棋盘剪枝限制棋子数量。数据规模25 个格子每个格子 2 种状态白/黑总终局数 C(25,13) 5,200,300DFS 枚举所有方案完全可行。候选算法和依据DFS 回溯依据每个格子只有白/黑两种终局状态按顺序逐格枚举用剪枝减少搜索量。复杂度预判时间复杂度 O(2^25)但剪枝后大幅减少空间复杂度 O(25)。解题后・外化复盘维度内容实现结构 / 核心思路第一步从 (0,0) 开始 DFS逐格处理每个格子放白棋或黑棋第二步每步检查白棋是否超过 13 个、黑棋是否超过 12 个超过则剪枝返回第三步当 25 个格子全部处理完x5检查白棋是否恰好 13 个、黑棋恰好 12 个且无人五子连珠满足则 ans第四步定义 check() 函数检查 5 行、5 列、2 条对角线是否有五个相同棋子第五步输出 ans。核心思想枚举所有终局状态筛选满足棋子数量且无人获胜的平局局面。错因回溯1. 剪枝条件放在出口后面导致白棋超过 13 个的非法状态也被计入 ans2. 出口处没有检查white 13 black 12导致棋子数量不对的终局也被计入3. check() 函数用return true表示有人赢调用时用!check()表示平局逻辑正确但容易混淆4. 忘记回溯恢复board[x][y] 0导致棋盘状态被污染。边界和易错点1. 剪枝条件 if (white 13下次看到什么信号我应该想到这个方法看到「棋盘 黑白棋子 平局 结果填空」用 DFS 枚举所有终局状态 回溯。AC 完整代码#includeiostreamusingnamespacestd;intboard[5][5];intans0;boolcheck(){for(inti0;i5;i){if(board[i][0]!0board[i][0]board[i][1]board[i][1]board[i][2]board[i][2]board[i][3]board[i][3]board[i][4]){returntrue;}if(board[0][i]!0board[0][i]board[1][i]board[1][i]board[2][i]board[2][i]board[3][i]board[3][i]board[4][i]){returntrue;}}if(board[0][0]!0board[0][0]board[1][1]board[1][1]board[2][2]board[2][2]board[3][3]board[3][3]board[4][4]){returntrue;}if(board[0][4]!0board[0][4]board[1][3]board[1][3]board[2][2]board[2][2]board[3][1]board[3][1]board[4][0]){returntrue;}returnfalse;}voiddfs(intx,inty,intwhite,intblack){if(white13||black12)return;if(x5){if(white13black12!check())ans;return;}intnxx,nyy1;if(ny5){nxx1;ny0;}board[x][y]1;dfs(nx,ny,white1,black);board[x][y]2;dfs(nx,ny,white,black1);board[x][y]0;}intmain(){dfs(0,0,0,0);coutansendl;return0;}

相关新闻

存(或通过智能指针等机制自动管理)。 、C++ 内存分区 内存区域 存储内容 生命周期 管理方式 栈 (Stack) 函数参数、局部 ...

存(或通过智能指针等机制自动管理)。 、C++ 内存分区 内存区域 存储内容 生命周期 管理方式 栈 (Stack) 函数参数、局部 ...

C 内存分区详解:从栈到智能指针的自动管理 引言:为什么需要理解内存分区?在C编程中,内存管理是核心技能之一。不同于Java或Python的自动垃圾回收,C赋予程序员直接控制内存的权力,但也带来了风险&#xff1a…

2026/10/4 1:35:43 阅读更多 →
Centos非LVM根分区容量不足后扩容,对调硬盘挂载/

Centos非LVM根分区容量不足后扩容,对调硬盘挂载/

Centos非LVM根分区容量不足后扩容,对调硬盘挂载/ 引言:为什么需要扩容非LVM根分区?在服务器运维中,CentOS系统根分区(/)容量不足是常见问题。非LVM(Logical Volume Manager)分区由于…

2026/10/4 22:12:42 阅读更多 →
3大AI图像修复场景:从模糊到高清的终极解决方案

3大AI图像修复场景:从模糊到高清的终极解决方案

3大AI图像修复场景:从模糊到高清的终极解决方案 【免费下载链接】Real-ESRGAN-GUI Lovely Real-ESRGAN / Real-CUGAN GUI Wrapper 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN-GUI 还在为模糊的老照片、低分辨率的动漫截图、压缩失真的网络图片…

2026/10/14 19:39:31 阅读更多 →

最新新闻

有界与冻结:对话系统跨会话记忆双闸设计实战

有界与冻结:对话系统跨会话记忆双闸设计实战

在对话系统和大模型应用里摸爬滚打久了,你迟早会撞上一个尴尬场景:用户上周明明跟你聊过“家里小孩对花生过敏”,这周回来你热情推荐了一款含花生碎的曲奇配方。用户没发火,但你心里清楚——这个系统失忆了。跨会话记忆不是什么新…

2026/10/15 5:25:11 阅读更多 →
CGRect

CGRect

苹果给同一个矩形类型起NSRect和CGRect两个名字,核心是‌历史演进跨平台兼容框架边界‌三重原因,并非简单的重复定义。🕰️ 历史起源:两个独立框架的产物‌NSRect‌ 诞生于早期的 NeXTSTEP 系统,属于 ‌Foundation/App…

2026/10/15 5:25:10 阅读更多 →
易语言乐玩插件FindPicEx多图查找实战:从单图到批量识别

易语言乐玩插件FindPicEx多图查找实战:从单图到批量识别

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 5:25:10 阅读更多 →
在MCU上复刻阿波罗导航计算机:AGC指令集仿真与嵌入式实现

在MCU上复刻阿波罗导航计算机:AGC指令集仿真与嵌入式实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 5:25:10 阅读更多 →
纯整数二阶滤波器:嵌入式MCU上实现高效ADC信号处理

纯整数二阶滤波器:嵌入式MCU上实现高效ADC信号处理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 5:25:10 阅读更多 →
虚拟机Ubuntu部署OpenClaw与Ollama:搭建私有本地AI代理

虚拟机Ubuntu部署OpenClaw与Ollama:搭建私有本地AI代理

上个月我又被一份云端 API 账单气到不行:只是让 AI 助手帮我写点小脚本、整理几份日志,月底一算居然够我吃好几顿火锅。更别扭的是,工作内容还要先经过别人家的服务器转一圈,数据隐私这块始终心里没底。于是我开始认真琢磨一件事—…

2026/10/15 5:24:10 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →