POJ 1321 棋盘问题
http://poj.org/problem?id=1321
因为 每一行 每一列不能有 棋子重复 也就是 没摆放一个棋子 就终结了 这一行 和这一列的 可能性
和8皇后一样
直接从第一行枚举 --> 深搜 回溯即可
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #define READ() freopen("in.txt", "r", stdin); 5 using namespace std; 6 7 int n, k, ans, tar = 0; 8 char maze[16][16]; 9 bool row[16], culumn[16]; 10 11 void dfs(int x) 12 { 13 if (x == n) return; 14 int i = x; 15 for (int j = 0; j < n; j++) 16 { 17 if (maze[i][j] == '#' && culumn[j] == false && row[i] == false) 18 { 19 tar++; 20 if (tar == k) 21 { 22 ans++; 23 } 24 else 25 { 26 culumn[j] = true; 27 row[i] = true; 28 dfs(i+1); 29 culumn[j] = false; 30 row[i] = false; 31 } 32 tar--; 33 } 34 } 35 dfs(x+1); 36 } 37 38 39 int main() 40 { 41 while (~scanf("%d%d", &n, &k)) 42 { 43 if (n == -1 && k == -1) break; 44 for (int i = 0; i < n; i++) 45 { 46 getchar(); 47 for (int j = 0; j < n; j++) 48 { 49 scanf("%c", &maze[i][j]); 50 } 51 } 52 memset(row, 0, sizeof(row)); 53 memset(culumn, 0, sizeof(culumn)); 54 tar = 0; 55 ans = 0; 56 dfs(0); 57 cout << ans << endl; 58 } 59 return 0; 60 }
标签:
搜索
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个自认为理想主义者的程序员,写了5年公众号、博客的初衷
· 大数据高并发核心场景实战,数据持久化之冷热分离
· 运维排查 | SaltStack 远程命令执行中文乱码问题
· Java线程池详解:高效并发编程的核心利器
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
· .NET 8 gRPC 实现高效100G大文件断点续传工具
· STM32学会要花费多长时间?一个从机械转行老程序员的血泪史
· LinqPad:C#代码测试学习一品神器
· .NET入行第4年(第二集)
· C#/.NET/.NET Core技术前沿周刊 | 第 43 期(2025年6.16-6.22)