比赛 |
2025暑期集训第5场图论专场 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Timeline |
最终得分 |
100 |
用户昵称 |
二乾五 |
运行时间 |
1.778 s |
代码语言 |
C++ |
内存使用 |
10.70 MiB |
提交时间 |
2025-07-09 11:39:36 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define copy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)
ll n,m,s[200005],c,dis[200005],cnt[200005];
bool vis[200005];
vector<vector<pair<ll,ll>>>a(200005);
queue<ll>q;
void spfa(ll x=0){
foru(i,1,n)dis[i]=INT_MIN;
q.push(x);
while(!q.empty()){
ll u=q.front();
q.pop();
vis[u]=0;
for(auto v:a[u]){
if(dis[v.first]<dis[u]+v.second){
dis[v.first]=max(dis[u]+v.second,dis[v.first]);
if(!vis[v.first]){
q.push(v.first);
vis[v.first]=1;
}
}
}
}
}
int main(){
#ifndef bendibianyi
#ifndef ONLINE_JUDGE
freopen("usaco_Feb_timeline.in" ,"r",stdin );
freopen("usaco_Feb_timeline.out","w",stdout);
#endif
#endif
cin>>n>>m>>c;
foru(i,1,n){
cin>>s[i];
}
foru(i,1,c){
ll x,y,z;
cin>>x>>y>>z;
a[x].push_back({y,z});
}
foru(i,1,n){
a[0].push_back({i,s[i]});
}
spfa();
foru(i,1,n){
cout<<dis[i]<<endl;
}
return 0;
}