0pts求条(玄关
查看原帖
0pts求条(玄关
780145
venti520楼主2024/9/22 12:47

有没有大佬帮我调一下题qwq
还有为什么我深搜连样例都过不了

#include<bits/stdc++.h>
using namespace std;
int head[10000005]={0},cnt=0,d[10000005],us[10000005]={0},ans=0;
int n,p;
struct Edge{
	int next;
	int to;
	int w;
}edge[10000005];
void add(int u,int v,int w)
{
	edge[++cnt].w=w;
	edge[cnt].to=v;
	edge[cnt].next=head[u];
	head[u]=cnt;
}
void dfs(int u,int s,int old)
{
	for(int i=head[u];i;i=edge[i].next)
	{
		if(us[edge[i].to]==1)
		continue;
		us[edge[i].to]=1;
		d[s]=edge[i].to;
		dfs(edge[i].to,s+1,old);
		us[edge[i].to]=0;
	}
	if(d[s-1]==old)
	{
		ans++;
		return ;
	}
}
int main()
{
	cin>>n>>p;
	for(int i=1;i<=p;i++)
	{
		int x,y;
		cin>>x>>y;
		add(x,y,1);
		add(y,x,1);
	}
	d[1]=1;
	for(int i=1;i<=n;i++)
	dfs(i,2,i);
	cout<<ans<<endl;
	return 0;
}
2024/9/22 12:47
加载中...