dfs all WA
查看原帖
dfs all WA
793067
Sam_Gamer楼主2023/8/1 12:05
#include<bits/stdc++.h>
#define N 7
using namespace std;
int road[N];
bool pt[N]={0};
int n;
void dfs(int u)//当前层数u
{
	if(u==n)//溯到最底层,Man了,回溯
	{
		for(int i=0;i<n;i++)
		{
			printf("     %d",road[i]);
		
		}
		puts("");//换行
		return;//返回上一层
	}
	else{
		for(int i=1;i<=n;i++)
		{
			if(!pt[i])//=pt[i]]==0,如果数字未访问,使用
			{
				road[u]=i;//U层使用
				pt[i]=1;//第i个数已被使用
				dfs(u+1);//下一层
				pt[i]=0;//还原				
			}
		}
	}
}
int main()
{
	scanf("%d",&n);
	dfs(0);
	return 0;
}
2023/8/1 12:05
加载中...