本蒟蒻拓扑排序67分,#3#5#6WA了
查看原帖
本蒟蒻拓扑排序67分,#3#5#6WA了
358794
Xfer_splendor楼主2021/7/21 10:43

重边也判了

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
vector<int>s[60010];//邻接链表 
queue<int>q;//队列 
int n,m,f[60010],outd[60010],ind[60010],d[2500][2500],x,y,w;
int main(){
	cin>>n>>m;
	for (int i=1;i<=m;++i){//建边 
		cin>>x>>y>>w;
		s[x].push_back(y);
		d[x][y]=max(d[x][y],w);//避免重边 
		outd[x]++;//出度 
		ind[y]++;//入度 
	}
	memset (f,-1,sizeof(f));//初始化 
	f[1]=0;
	q.push(1);
	while (!q.empty()){//拓扑排序 
		int x=q.front();//出队 
		q.pop();
		for (int i=0;i<s[x].size();++i){//扩展搜索 
			int y=s[x][i];
			f[y]=max(f[x]+d[x][y],f[y]);//取最大值 
			ind[y]--;//入度-1 
			if (ind[y]==0){//入队 
				q.push(y);
			}
		}
	}
	cout<<f[n];//输出 
	return 0;
}
2021/7/21 10:43
加载中...