Avada kedavra_用回溯法解N皇后问题

Avada kedavra_用回溯法解N皇后问题hdu2553N皇后问题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

hdu2553

N皇后问题

//hdu2553 
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAX 11
int ans,n;
struct Map{
	int x;
	int y;
};
Map map[MAX];
void dfs(int cont){
	if(cont==n){
		ans++;
		return;
	}
	if(cont>n){
		return ;
	}
	int j,m;
	for(j=0;j<n;j++){//第cont个皇后的行号为cont 
		for(m=0;m<cont;m++){
			if(map[m].y==j||map[m].x+map[m].y==cont+j||map[m].x-map[m].y==cont-j){
				break;
			}	
	    }
	    if(m<cont)//当前皇后不能放在cont行j列 
		        continue;
		map[cont].x=cont;
	    map[cont].y=j;
	    dfs(cont+1);
	}	
}
int main(){
	int Queen[MAX];
	for(n=1;n<=10;n++){
		ans=0;
		for(int j=0;j<n;j++){//第一个放在第0行的某一列 
			map[0].x=0;
			map[0].y=j;
			int cont=1;
			dfs(cont);
		}
		Queen[n]=ans;
	} 
	while(scanf("%d",&n)!=EOF&&n){
		
		printf("%d\n",Queen[n]);
	}
	return 0;
} 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188097.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 对ajax的理解面试题_javascript面试题大全

    对ajax的理解面试题_javascript面试题大全前两天面试的时候,面试官问我,你掌握的技能是Ajax,那你给我讲一下它的基本原理吧!妈呀,瞬间脑子空白。当时在门口背了好久的网络知识点,一时竟然说不吃话,只记得什么异步通信,同步数据,面试官的笑让我不寒而栗…………今天整体的整理一遍Ajax的知识点吧。…

    2022年8月27日
    8
  • HorizontalScrollView+TabLayout+ViewPager+XUtils「建议收藏」

    HorizontalScrollView+TabLayout+ViewPager+XUtils「建议收藏」利用HorizontalScrollView+TabLayout+ViewPager+XUtils简单实现一个小Demo;首先配置环境:添加权限:添加依赖:记得添加Gson的jar包 还有个XUtils的依赖:compile’org.xutils:xutils:3.5.0’下来是布局:activity_main

    2022年7月14日
    27
  • 原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」

    原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」jps(JavaVirtualMachineProcessStatusTool)jsp是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps也是一样,它的作用是显示当前系统的java进程情况及进程id。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实

    2026年1月30日
    5
  • 前端缓存处理[通俗易懂]

    前端缓存处理[通俗易懂]前端的缓存原来是这样做的!

    2025年8月6日
    4
  • 浏览器到服务器端进行通信的简单理解

    浏览器到服务器端进行通信的简单理解

    2021年8月15日
    55
  • 孙鑫Java视频教程(全12CD)

    孙鑫Java视频教程(全12CD)写了5年的C语言,最近由于工作关系,需要快速掌握JAVA,多亏孙鑫老师的视频,让我从入门到“精通”,推荐JAVA新人学习。特点:1、覆盖面全,讲解结合例子内容实在,看10课的介绍就知道2、如果有面向对象的基础,学起来更快3、附带PPT,可以方便摘录其中内容形成自己的学习笔记…http://www.sunxin.org/video/java.htm

    2022年5月17日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号