社区讨论

RE求diao

P4017最大食物链计数参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m0wbsifu
此快照首次捕获于
2024/09/10 19:05
去年
此快照最后确认于
2025/11/04 21:26
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int mod=80112002;
int n,m,b[5001]={0},z[5001]={0},ans=0;
struct link{
	int x,y,nx;
};
link mp[500001];
int next[5001]={0},next0[5001]={0};
int dfs(int t){
	int num=0;
	if(!z[t]){
		return 1;
	}
	if(next0[t]){
		return next0[t];
	}
	for(int i=next[t];i;i=mp[i].nx){
		(num+=dfs(mp[i].x))%=mod;
	}
	return next0[t]=num;
}
int main(){
	cin>>n>>m;
	int i=1;
	while(m--){
		int x,y;
		b[x]=1;
		z[y]=1;
		cin>>x>>y;
		mp[i].x=x;
		mp[i].y=y;
		mp[i].nx=next[y];
		next[y]=i;
		i++;
	}
	for(int i=1;i<=n;++i){
		if(!b[i]){
			(ans+=dfs(i))%=mod;
		}
	}
	cout<<ans;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...