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

HDU2553 N皇后问题

思路:回溯法求解。关键在于找出皇后能攻击的格子,竖直方向的好找,斜45方向就需要找下规律。

列 - 行

0  1  2  3   4

-1  0  1  2  3

-2 -1  0  1  2

-3 -2 -1  0  1

-4 -3 -2 -1  0 

列+行

0 1 2 3 4

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

 

AC代码:

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4 int flag[15];
 5 int vis[2][30];
 6 int ans[15];
 7 int dfs(int num,int n){
 8     int cnt=0;
 9     if(num==0){
10         return 1;
11     }
12     for(int i=1;i<=n;i++){
13         if(flag[i]||vis[0][i-num+n]||vis[1][i+num]){
14             continue;
15         }
16         flag[i]=vis[0][i-num+n]=vis[1][i+num]=1;
17         cnt+=dfs(num-1,n);
18         flag[i]=vis[0][i-num+n]=vis[1][i+num]=0;
19     }
20     return cnt;
21 }
22 int main(){
23     for(int i=1;i<=10;i++){   //因为不知道询问多少次,所以先打表
24         memset(vis,0,sizeof(vis));
25         memset(flag,0,sizeof(flag));
26         ans[i]=dfs(i,i);
27     }
28     int n;
29     while(cin>>n){
30         memset(flag,0,sizeof(flag));
31         memset(vis,0,sizeof(vis));
32         if(n==0){
33             break;
34         }
35         cout<<ans[n]<<endl;
36     }
37     return 0;
38 }

 

转载于:https://www.cnblogs.com/ISGuXing/p/8889368.html

相关文章:

  • [转]给年轻工程师的十大忠告
  • Flutter 安装
  • CYQ.Data V5 批量插入与批量更新示例
  • Java知识点总结(JavaIO-打印流)
  • 在Java中使用Lua脚本语言
  • python正则
  • [HEOI2013]ALO
  • 20172304 2017-2018-2 《程序设计与数据结构》第七周学习总结
  • 【语言处理与Python】4.2序列
  • 关于iOS网络访问权限的问题
  • Repository设计模式
  • Launcher中Shortcut的创建流程简析
  • thymeltesys-基于Spring Boot Oauth2的扫码登录框架
  • windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
  • 如何格式化日期和时间
  • Android Volley源码解析
  • Android组件 - 收藏集 - 掘金
  • CODING 缺陷管理功能正式开始公测
  • HTML5新特性总结
  • HTTP那些事
  • JavaScript 一些 DOM 的知识点
  • webpack+react项目初体验——记录我的webpack环境配置
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 记一次和乔布斯合作最难忘的经历
  • 简单数学运算程序(不定期更新)
  • 近期前端发展计划
  • 聊聊sentinel的DegradeSlot
  • 批量截取pdf文件
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 实现菜单下拉伸展折叠效果demo
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • mysql面试题分组并合并列
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #微信小程序(布局、渲染层基础知识)
  • (1)STL算法之遍历容器
  • (TOJ2804)Even? Odd?
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)c52学习之旅-简单了解单片机
  • (学习日记)2024.01.09
  • (转)创业的注意事项
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET MVC之AOP
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net Winform开发笔记(一)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .Net组件程序设计之线程、并发管理(一)
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • [《百万宝贝》观后]To be or not to be?
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Angular] 笔记 6:ngStyle
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法
  • [git] windows系统安装git教程和配置
  • [HNOI2018]排列
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式