37分求debug
查看原帖
37分求debug
920938
XingChen_MoNian楼主2024/3/27 20:48

万紫千红,MLE,WA,AC

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
vector<int> vc1[1505];
vector<int> vc2[1505];
int in[1505],ans[1505];
void top_sort(int n){
	queue<int> q;
	for(int i=2;i<=n;i++){
		ans[i]=-1;
		if(!in[i]) q.push(i);
	}
	while(!q.empty()){
		int a=q.front();
		q.pop();
		for(auto x:vc1[a]){
			if(in[x]) q.push(x);
		}
	}
	q.push(1);
	while(!q.empty()){
		int a=q.front();
		q.pop();
		for(int i=0;i<vc1[a].size();i++){
			if(ans[vc1[a][i]]<ans[a]+vc2[a][i]) ans[vc1[a][i]]=ans[a]+vc2[a][i];
			if(!in[vc1[a][i]]) q.push(vc1[a][i]);
		}
	}
}
int main(){
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		vc1[u].push_back(v);
		vc2[u].push_back(w);
		in[v]++;
	}
	top_sort(n);
	cout<<ans[n];
//  fclose(stdin);
//  fclose(stdout);
	return 0;
}
/*

*/

2024/3/27 20:48
加载中...