TLE了,请教下这题能否用dfs来解
查看原帖
TLE了,请教下这题能否用dfs来解
890321
mooktian楼主2023/2/8 20:37
#include <iostream>
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
int n,ans;
char vis[25];
int a[25]; 
void dfs(int deep) {
	if(deep>n) {
		ans++;return;
	}
	f(i,1,n) {
		if(!vis[i]&&deep!=i) {
			a[deep]=i;
			vis[i]=1;
			dfs(deep+1);
			vis[i]=0;
		}
	}
}
int main(){
	cin>>n;
	dfs(1);
	cout<<ans;
	return 0;
}
2023/2/8 20:37
加载中...