n皇后问题
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。
给定棋盘的大小n (n ≤ 13)
输出整数表示有多少种放置方法。
8
92
n<=13
(时限提高了,不用打表了)
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int tot; 5 int vis[1001];// 列 6 int zd[1001];//左方向对角线 7 int yd[1001];//右方向对角线 8 int n; 9 void f(int k) 10 { 11 if(k==n) 12 { 13 tot++; 14 return; 15 } 16 else 17 { 18 for(int j=1;j<=n;j++) 19 { 20 if(vis[j]==0&&zd[j+k]==0&&yd[k-j+n]==0) 21 { 22 vis[j]=1; 23 zd[j+k]=1; 24 yd[k-j+n]=1; 25 f(k+1); 26 vis[j]=0; 27 zd[j+k]=0; 28 yd[k-j+n]=0; 29 } 30 } 31 } 32 } 33 int main() 34 { 35 36 cin>>n; 37 f(0);// 一定是0,千万别是1 ,。。。。一位调试了1个小时的oier的忠告 38 cout<<tot; 39 return 0; 40 }
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
23 | 24 | 25 | 26 | 27 | 28 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
谢谢拨珠!qwq
应该是 lcp(x,y)=min(H[x+1…y])
两个后缀的最大公共前缀 假了
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端