40分RE求助!
查看原帖
40分RE求助!
427120
KS_tips_CN楼主2021/9/16 21:25

这个代码用的是拓扑排序,每次加都MOD了一遍,应该不会有超限的问题

我下载了第五题的数据并且用freopen载入试了几次

发现输出的答案都不固定,于是我又检查了一遍局部变量的初值,也没找到未定义的局部变量

这篇代码写了两三遍了还是RE40,真的找不到bug了,希望大神可以指导一下qwq


#include<bits/stdc++.h>
#define MOD 80112002  
using namespace std;
int n,m,low,up;
int in[6001],out[6001];
vector<int> a[6001];
int f[6001];
queue<int> q;
int main(){
	
	freopen("P4017_5.in","r",stdin);
	
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>low>>up;
		a[low].push_back(up);
		out[low]++;
		in[up]++;
	}
	for(int i=1;i<=n;i++){
		if(in[i]==0){
			q.push(i);
			f[i]=1;
		}
	}
	//将入度为零的点加入队列
	while(!q.empty()){
		int head=q.front();
		q.pop();
		//接下来对head拓展
		for(int i=0;i<a[head].size();i++){
			int y=a[head][i];
			in[y]--;
			f[y]=(f[head]+f[y])%MOD;
			if(in[y]==0) q.push(y);
		} 
	} 
	int ans=0;
	for(int i=1;i<=m;i++){
		if(out[i]==0) ans=(ans+f[i])%MOD;
	}
	cout<<ans;
	return 0;
}
2021/9/16 21:25
加载中...