HDU2553
来源:互联网 发布:跑车手机主题软件 编辑:程序博客网 时间:2024/05/29 08:36
1.题目描述:
N皇后问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21959 Accepted Submission(s): 9803
Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。
Output
共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。
Sample Input
1850
Sample Output
19210
Author
cgf
Source
2008 HZNU Programming Contest
Recommend
lcy | We have carefully selected several similar problems for you: 1045 1035 1067 2181 2660
3.解题思路:行和列判断其实蛮简单的,主要是斜线,观察容易发现45度可以用斜率啊,所以判断就是abs(c[step] - c[j]) == abs(step - j)
然后这题卡时间卡得比较紧,由于n小于10,我就直接打表了,如果n更大的话,状态压缩??
4.AC代码:
// O.cpp : 定义控制台应用程序的入口点。///*#include <stdio.h>#include <string.h>#include <math.h>#define N 11using namespace std;int c[N], vis[N];int n, cnt;void dfs(int step){if (step == n + 1){cnt++;return;}for (int i = 1; i <= n; i++){if (!vis[i]){c[step] = i;int flag = 1;for (int j = 1; j <= step - 1; j++)if (abs(c[step] - c[j]) == abs(step - j)){flag = 0;break;}if (flag){vis[i] = 1;dfs(step + 1);vis[i] = 0;}}}}int main(){while (scanf("%d", &n) != EOF && n){memset(c, 0, sizeof(c));memset(vis, 0, sizeof(vis));cnt = 0;dfs(1);printf("%d\n", cnt);} return 0;}*/// 超时orz,还是打表吧#include <cstdio>using namespace std;int ans[11] = { 0, 1,0,0,2,10,4,40,92,352,724 };int main(){int n;while (scanf("%d", &n) != EOF && n)printf("%d\n", ans[n]);}
0 0
- hdu2553
- hdu2553
- HDU2553
- HDU2553
- hdu2553
- HDU2553
- HDU2553
- hdu2553.c
- hdu2553 N皇后问题
- HDU2553 N皇后问题
- hdu2553 回溯法
- hdu2553(n皇后)
- HDU2553:N皇后问题
- hdu2553 n皇后问题
- hdu2553解题报告
- hdu2553 N皇后问题
- hdu2553 n皇后问题
- HDU2553 N皇后问题
- java多线程之Runnable
- bzoj 4419: [Shoi2013]发微博 (STL)
- Mybatis在oracle数据库中插入数据后返回自增ID值
- 初学myeclipse 遇到的问题
- Ajax访问Servlet的跨域请求问题—Access-Control-Allow-Origin
- HDU2553
- 消息队列应用场景
- 位移动画。txt
- html5新增的语义标签和表单验证功能
- 开源库xUtils3使用详解
- Windows下Flask安装
- xPath
- 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法
- C#中将字符转换为键盘的键值keycode