为什么出不了答案?一直死循环。
查看原帖
为什么出不了答案?一直死循环。
316354
乔铎清楼主2023/5/22 17:18
#include<bits/stdc++.h>
using namespace std;
int to[1000];
int first[1000];
int next[2000];
int a[10];
bool vis[1000];
int sum;
void dfs(int x,int step){
	if(step==3)
	{
		if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2]||a[1]==a[3]||a[2]==a[3])
		{
			return;
		}
		else
		{
			sum++;
			return;
		}
	}
	for(int i = first[x];i != 0;next[i])
	{
		int e = to[i];
		if(vis[e] == 0)
		{
			vis[e]=1;
			a[step] = e;
			dfs(e,step+1); 
			a[step] = 0;
			vis[e] = 0;
		}
	}
} 
int main()
{
	int n,m;
	cin >> n >> m;
	for(int i=1;i<=m;i++)
	{
		int v,u;
		cin >> v >> u;
		to[i] = u;
		next[i] = first[v];
		first[v] = i;
		to[m+i] = v;
		next[m+i] = first[u];
		first[u] = m+i;
	}
	for(int i=1;i<=n;i++)
	{
		vis[i]=1;
		dfs(i,0);
		vis[i]=0;
	}
	cout << sum ;
	return 0;	
 } 
2023/5/22 17:18
加载中...