dfs90分??!!为什么总有一个点会RE
查看原帖
dfs90分??!!为什么总有一个点会RE
287412
lixiang314楼主2020/12/5 21:08
#include<bits/stdc++.h>
using namespace std;
int a[30],flag[30],t[10000],top=0;
int n,r; 
void dfs(int dep,int start)
{
	if(dep==r+1)
	{
		for(int j=1;j<=top;j++)
			cout<<setw(3)<<t[j];
		cout<<endl; 
	}
	else
	{
		for(int i=start;i<=n;i++)
		{
			if(!flag[i])
			{
				flag[i]=true;
				t[++top]=i;
				dfs(dep+1,i+1);
				flag[i]=false;
				--top;
			}
		}
	}
}
int main()
{
	cin>>n>>r;
	dfs(1,1);
	return 0;
}

2020/12/5 21:08
加载中...