悬关求助
查看原帖
悬关求助
1352943
Gartjock楼主2024/10/1 15:32

CE了

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=9e6+6;
int n,dist[N],vis[N],mp[N][N];
int djstl(int n){
	memset(dist,0x3f,sizeof dist);
	dist[1]=0;
	for(int i=1;i<=n;i++){
	    int index=-1;
		for(int j=1;j<=n;j++){
			if(!vis[i]&&(dist[j]<dist[index]||index==-1)){
				index=j;
			}
		}
		vis[index]=1;
		for(int j=1;j<=n;j++){
			dist[j]=min(dist[j],dist[index]+mp[index][1]);
		}
	}
	if(dist[n]==0x3f3f3f3f)return (1<<31)-1;
	else return dist[n];
}
signed main(){
    cin>>n;
    int m,s;
    cin>>m>>s;
    while(m--){
    	int a,b,c;cin>>a>>b>>c;
    	mp[a][b]=c;
	}
	cout<<djstl(s)<<endl;
	return 0;
}
2024/10/1 15:32
加载中...