为什么dfs不输出换行QAQ
  • 板块灌水区
  • 楼主WZWZWZWY
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/9/29 18:05
  • 上次更新2023/11/2 17:17:17
查看原帖
为什么dfs不输出换行QAQ
704668
WZWZWZWY楼主2023/9/29 18:05
#include <bits/stdc++.h>
using namespace std;
int n,b[1000005];
long long ans;
void dfs(int a[],int q,int p){
	sort(a+1,a+1+n);
	for (int i = 1; i <= n; i++) cout << a[i] << " ";
	cout < "\n\n";
	if (a[n] == 0) {
		ans ++;
		return;
	}
	a[q] = p;
	sort(a+1,a+1+n);
	for (int i = 1; i <= n; i++){
		if (a[i] ==0 )continue;
		if (a[i] == 1){
			dfs(a,i,0);
		}
		else if (i>1&&a[i]-a[i-1] == 1&& a[i-1]-a[i-2]!=1){
			dfs(a,i,a[i-1]-1);
		}else if (i>=1&&a[i]-a[i-1] != 1){
			dfs(a,i,a[i]-1);
		}
	}
}
int main(){
	cin >> n;
	cout << n << "\n";
	for (int i = 1; i <= n; i++) cin >> b[i];
	sort(b+1,b+1+n);
	dfs(b,0,0);
	cout <<ans;
}

输入 3 1 2 3

2023/9/29 18:05
加载中...