13pts WA+RE
查看原帖
13pts WA+RE
666796
Rainsleep楼主2022/7/28 18:20

评测Link


#include<bits/stdc++.h>

using namespace std;

int const N(20);

char g[N][N];

bool col[N],dg[N << 1],udg[N << 1];

int res(0);

int paths[10010][N];

int n;

inline void dfs(int cur)
{
	if(cur == n)
	{
		++res; 
		return ;
	}
	
	for(int i(0);i<n;++i)
		if(!col[i] and !dg[cur + i] and !udg[n - cur + i])
		{
		    paths[res][cur] = i + 1;
			col[i] = dg[cur + i] = udg[n - cur + i] = true;
			dfs(cur + 1);
			col[i] = dg[cur + i] = udg[n - cur + i] = false;
			
		}
	
	return ;
}

int main()
{
    
    memset(col,false,sizeof col);
    memset(dg,false,sizeof dg);
    memset(udg,false,sizeof udg);
	
	scanf("%d",&n);
	
	dfs(0);	
	
	for(int i(0);i<3;++i)
	{
		for(int j(0);j<n;++j)
			printf("%d ",paths[i][j]);
		putchar('\n');
	}

	printf("%d",res);
	
	putchar('\n');
	
	return 0;
}

已经修改过了许多地方,但是依然无济于事,,

2022/7/28 18:20
加载中...