后5点全TLE求调!!!
查看原帖
后5点全TLE求调!!!
1140784
StarryRTX楼主2024/8/1 17:16

rt

#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<stack>
#define in inline
#define re register
#define int long long
#define MAXN 1000005
#define sped_cout_cin ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
int n,m,c,head[MAXN],dis[MAXN],s[MAXN],sum[MAXN],cnt,u,v,w;
bool vis[MAXN]; queue<int> q;
struct edge{int to,next,w;}e[MAXN];
inline void add(int u,int v,int w){
	e[++cnt].to=v;
	e[cnt].w=w;
	e[cnt].next=head[u];
	head[u]=cnt;
	return ;
}
inline void spfa(){
	dis[0]=0;vis[0]=1;sum[0]++;
	q.push(0);
	while(!q.empty()){
		re int top=q.front();
		q.pop();
		vis[top]=0;
		for(re int i=head[top];i!=-1;i=e[i].next){
			if(dis[e[i].to]<dis[top]+e[i].w){
				dis[e[i].to]=dis[top]+e[i].w;
				sum[e[i].to]++;
			}
			if(!vis[e[i].to]){
				q.push(e[i].to);	
				vis[e[i].to]=1;
			}
		}
	}
	return ;
}
signed main(){
	freopen("P6145_6.in","r",stdin);
	memset(head,-1,sizeof(head));
	memset(dis,-0x3f,sizeof(dis));
	sped_cout_cin
	cin>>n>>m>>c;
	for(re int i=1;i<=n;i++){
		cin>>s[i];
		add(0,i,s[i]);
	}
	for(re int i=1;i<=c;i++){
		cin>>u>>v>>w;
		add(u,v,w);
	}
	spfa();
	for(re int i=1;i<=n;i++) cout<<dis[i]<<'\n';
	return 0;
}
2024/8/1 17:16
加载中...