PI2I9的八皇后超时该如何解决
  • 板块题目总版
  • 楼主圣圣圣君
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/8/30 13:57
  • 上次更新2023/11/5 13:57:59
查看原帖
PI2I9的八皇后超时该如何解决
99518
圣圣圣君楼主2020/8/30 13:57
#include<iostream>
#include<cmath>
using namespace std;
int x,couner,q[10000],c;
bool flag;
void Queen(int x)
{
	if(x>c)
	{
		couner++;
		if(couner<=3)
		{
			for(int i=1;i<=c;i++)
			{
				cout<<q[i]<<' ';
			 } 
			 cout<<endl;
		} 
		return;
	 } 
	 for(int i=1;i<=c;i++)
	 {
	 	flag=true;
	 	for(int j=1;j<x;j++)
	 	{
	 		if(i==q[j])
	 		{
	 			flag=false;
	 			break;
			 }
			 if(abs(i-q[j])==abs(x-j))
			 {
			 	flag=false;
			 	break;
			 }
		 }
		 if(flag==true)
		 {
			q[x]=i;		 	
			Queen(x+1);
		 } 
	 }
 } 

int main()
{
	cin>>c; 
	Queen(1);
	cout<<couner<<endl;
 	return 0;
}

来自一个萌新的发问,我又双叒叕的超时了,怎么避免超时呢?

2020/8/30 13:57
加载中...