ans+剪枝求解

jinpeiyu 2024-02-01 15:47:39 9 返回题目

你们聪明的,告诉我,这个代码如何剪枝???(在加入N==13时特殊判断后可AC)

#include <bits/stdc++.h>
using namespace std;
int n,q[15],s=0;
void dfs(int step){
	if(step==n)s++;
	else for(int i=0;i<n;i++){
		int p=0;
		q[step]=i;
		for(int j=0;j<step;j++)if(q[step]==q[j]||step-q[step]==j-q[j]||step+q[step]==j+q[j])p=1;
		if(!p)dfs(step+1);
	}
}
int main(){
	cin>>n;
	dfs(0);
	cout<<s<<endl;
	return 0;
}
{{ vote && vote.total.up }}