错了10几遍,出不来5555(求
  • 板块P1807 最长路
  • 楼主zszhao
  • 当前回复16
  • 已保存回复16
  • 发布时间2023/1/29 19:46
  • 上次更新2023/10/24 02:39:29
查看原帖
错了10几遍,出不来5555(求
546568
zszhao楼主2023/1/29 19:46
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m,cnt=0;
struct A{
	int to;
	int z;
	int nxt;
};
A E[N];
int head[N],dis[N];
priority_queue<pair<int,int> > q;
bool vis[N];
void add(int x,int y,int z){
	E[++cnt].nxt=head[x];
	E[cnt].to=y;
	E[cnt].z=z;
	head[x]=cnt;
} 
void dijkstra(){
	memset(dis,0xff,sizeof(dis));
	q.push(make_pair(0,1));
	dis[1]=0;
	while(q.size()){
		int x=q.top().second;
		q.pop();
		if(vis[x]) continue;
		vis[x]=1;
		for(int i=head[x];i;i=E[i].nxt)
		 if(dis[E[i].nxt]<E[i].z+dis[x])
		   dis[E[i].nxt]=E[i].z+dis[i],q.push(make_pair(dis[E[i].nxt],E[i].nxt));
	}
	cout<<dis[n];
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		add(x,y,z);
	}
	dijkstra();
	return (0-0);
}
2023/1/29 19:46
加载中...