BFS连60分都过不了求大佬查错
查看原帖
BFS连60分都过不了求大佬查错
457643
赖狗是sb楼主2020/12/23 23:05
#include<cstdio>
#include<iostream>
using namespace std;
int p[10001],q[10001],n,m,a1,a2,h,w;
int a[2001][2001],b[10001],r[10001];
int main()
{
	
	scanf("%d%d",&n,&m); 
	for (int i=1; i<=m; i++)
	{
	scanf("%d%d",&a1,&a2);
	if (a1!=a2)
	a[a1][a2]++;
    }
    w=1;
    q[1]=1;
    r[1]=1;
    p[1]=1;
    while (h<w)
    {
    	h++;
    	for (int i=1; i<=n; i++)
		if (a[q[h]][i]>0)
		{
		if (p[i]==0)
		{
			w++;	
			q[w]=i;
		    p[i]=p[q[h]]+1;
			r[i]+=r[q[h]]*a[q[h]][i];
		}
		else if (p[q[h]]+1==p[i])		
			r[i]+=r[q[h]]*a[q[h]][i];
	
	    }
    }
    for (int i=1; i<=n; i++)
    cout<<r[i]<<endl;
}
 
2020/12/23 23:05
加载中...