最后一个超时,求助大佬
查看原帖
最后一个超时,求助大佬
1023509
Capybara_luck楼主2025/1/22 15:47
#include<iostream>
using namespace std;
int n,t=0;
int r[14]={0};
void qq(int op){
	if(op==n+1){
		t++;
		if(t<=3){
			for(int i=1;i<=n;i++) cout<<r[i]<<" ";
		    cout<<endl;
		}
		return;
	}
	for(int i=1;i<=n;i++){
		bool ans=1;
		for(int j=1;j<op;j++){
			if(i==r[j]||op+i==j+r[j]||op-i==j-r[j]){
				ans=0;
				break;
			}
		}
		if(ans){
		    r[op]=i;
		    qq(op+1);
		}
	}
	return;
}
int main(){
	cin>>n;
	qq(1);
	cout<<t<<endl;
	return 0;
}
2025/1/22 15:47
加载中...