题解 | #老子的全排列呢#

老子的全排列呢

https://ac.nowcoder.com/acm/problem/15128

方法一:直接用stl里面的next_permutation

```// #include<bits/stdc++.h>
// using namespace std;
// #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
// int main(){
//     IOS;
//     int a[8]={1,2,3,4,5,6,7,8};
//     do{
//         for(int i=0;i<8;i++){
//             cout<<a[i]<<' ';
//         }
//         cout<<endl;
//     }while(
//         next_permutation(a,a+8);
//     );
//     return 0;
// }


> 方法二:用dfs的
#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int a[8];  
int vis[8];//记录是否用过
void def(int x){
	if(x>8){
		for(int i=1;i<=8;i++){
			cout<<a[i]<<" ";
		}
		cout<<endl;
		return;
	}
	for(int i=1;i<=8;i++){
		if(vis[i]==1){
			continue;
		}
		a[x]=i;
		vis[i]=1;
		def(x+1);
		a[x]=0;
		vis[i]=0;
	}
	
}
int main(){
	IOS;
	def(1);
	return 0;
} 
全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务