社区讨论

20超时求条

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

讨论操作

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

当前回复
6 条
当前快照
1 份
快照标识符
@mhj0x7y0
此快照首次捕获于
2025/11/03 18:55
4 个月前
此快照最后确认于
2025/11/03 18:55
4 个月前
查看原帖
前2个AC,后面全TLE
CPP
#include <bits/stdc++.h>//IAKCSP
//#include <windows.h>
using namespace std;
#define int long long
#define N 50010
#define MOD 80112002
int x,y,ans[N+10],n,m;
vector<int> in[N];
vector<int> out[N];
int dfs(int x){
	if(in[x].empty())return 1;
	else if(in[x].size()==1){
		return dfs(in[x][0]);
	}else{
		int s=0;
		for(int i=0;i<in[x].size();i++){
			s+=dfs(in[x][i]);
			s%=MOD;
		}
		return s;
	}
}
void solve(){
	cin>>n>>m;
	fill(ans,ans+n,-1);
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		in[y].push_back(x);
		out[x].push_back(y);
	}
//	for(int j=0;j<n;j++){
//		if(out[j].empty()){
//			out[j].push_back(-1);
//			ans[j]=1;
//		}
//	}
	
//	for(int i=2;i<=n;i++){
//		s+=ans[i];
//		s%=MOD;
//	}
	int s=0;
	for(int i=1;i<=n;i++){
		if(out[i].empty()){
			s+=dfs(i);
			s%=MOD;
		}
	}
	cout<<s;
}
signed main(){
//	freopen("abba.in","r",stdin);
//	freopen("abba.out","w",stdout);
//  for(int i=0;i<100000000;i++);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int _=1;
//	cin>>_;
	while(_--)solve();
}
紧急求助

回复

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

正在加载回复...