悬棺求条miao
查看原帖
悬棺求条miao
737325
_klee_楼主2024/10/4 11:23

照着板子打的 全WA了。。。

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N=5e5+10;
inline int read()
{
	int x=0,f=1; char ch=getchar();
	while (ch<'0'||ch>'9'){
	if (ch=='-') f=-1; ch=getchar();}
	while (ch>='0'&&ch<='9'){
	x=x*10+ch-48; ch=getchar();}
	return x*f;
}
vector<int> g[N]; 
int in[N],in2[N],dis[N]; 
int n,m,x,y,ans;
void bfs()
{
	memset(dis,0,sizeof(dis)); 
	queue<int> q;
	for(int i=1;i<=n;i++)
		if(in[i]==0) x=i;// 不会被其他生物捕食的消费
	for(int i=1;i<=n;i++)
		if(in2[i]==0) y=i;//最弱 不会捕食其他生物的生产者
	q.push(y);
	dis[x]=1;
	while(!q.empty())
	{
		int xxx=q.front();
		q.pop();
		for(int i=0;i<g[xxx].size();i++)
		{
			int yyy=g[xxx][i];
			dis[yyy]=(dis[yyy]+dis[xxx])%80112002;
			in[yyy]--;
			if(in[yyy]==0) q.push(yyy);
		}
	}
	ans+=dis[y];
	ans%=80112002; 
}
signed main( )
{
	n=read(),m=read();
	for(int i=1;i<=m;i++)
	{
		int x=read();
		int y=read();
		g[x].push_back(y); 
		in[x]++; in2[y]++;
	}
	bfs();
	cout<<ans; 
 	return 0;
}
2024/10/4 11:23
加载中...