比赛 2025暑期集训第5场图论专场 评测结果 AAAAAAAAAA
题目名称 Timeline 最终得分 100
用户昵称 惊世猴人 运行时间 1.119 s
代码语言 C++ 内存使用 8.64 MiB
提交时间 2025-07-09 11:23:41
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int m,n,c;
int dis[100001],x[100001];
struct E{
	int to,v;
};
vector<E>v[100001];
bool vis[100001];
queue<int>q;
void SPFA(){//这不是最长路吗 
	dis[0]=0,vis[0]=1;
	q.push(0);
	while(!q.empty()){
		int t=q.front();
		q.pop();
		vis[t]=0;
		for(int i=0;i<v[t].size();i++){
			int x=v[t][i].to;
			int y=v[t][i].v;
			if(dis[x]<dis[t]+y){
				dis[x]=dis[t]+y;
				if(!vis[x]){
					vis[x]=1;
					q.push(x);
				}
			}
		}
	}
}
signed main(){
	freopen("usaco_Feb_timeline.in","r",stdin);
	freopen("usaco_Feb_timeline.out","w",stdout);
	cin>>n>>m>>c;
	for(int i=1;i<=n;i++)cin>>x[i],v[0].push_back(E{i,x[i]});
	for(int i=1;i<=c;i++){
		int x,y,z;
		cin>>x>>y>>z;
		v[x].push_back(E{y,z});
	}
	SPFA();
	for(int i(1);i<=n;i++){
		cout<<dis[i]<<'\n';
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}