话说为什么数组开20都过不了
查看原帖
话说为什么数组开20都过不了
470198
Ayaka96楼主2021/2/10 10:42
#include <bits/stdc++.h>
using namespace std;

#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

int a[50] = {0},b[50] = {0},c[50] = {0};
int vir[50] = {0};
int n,ans = 0;
void dfs(int x){

	if(x > n){
		ans++;
		if(ans <= 3){
			for(int i = 1;i <= n;i++) cout << vir[i] <<' ';cout << endl;
		}
		return ;
	}
	for(int i = 1;i <= n;i++){
		if(a[i] || b[i + n - x] || c[i + x - 1]) continue;
		a[i] = b[i + n - x] = c[i + x - 1] = 1;
		vir[x] = i;
		dfs(x + 1);
		a[i] = b[i + n - x] = c[i + x - 1] = 0;
	}
	return ;
}
int main(){

	cin >> n;
	dfs(1);
	cout << ans;
	return 0;
}

开始我数组开的15,然后从第四个点过不了,然后我改成20,本地输入13能跑出来,但是交上去过不了,最后改成50过了

2021/2/10 10:42
加载中...