#include <iostream> using namespace std; int main() { int a, b; //定义两个变量名 cin >> a >> b; //从标准输入流中输入两个整数 cout << a + b << endl; //输出到标准输出流中 } // 完成程序以后,点击下方的提交,即可看到测试结果 */ #include<iostream> #define INF 99999999; using namespace std; struct line { int w; int next; int to; }edge[1000001]; int g[1001]; int tot; void add1(int a,int b,int c) { tot++; edge[tot].to=b; edge[tot].w=c; edge[tot].next=g[a]; g[a]=tot; } bool rejudge[1001]; int q[1001]; int distant[1001]; int n,m; int spfa(int a,int b) { for(int i=1;i<=n;i++) { rejudge[i]=false; distant[i]=INF; } int h=0; int t=1; q[t]=a; distant[a]=0; while(h!=t) { h=h%n+1; int x=q[h]; int temp=g[x]; while(temp!=0) { if(distant[edge[temp].to]>distant[x]+edge[temp].w) { distant[edge[temp].to]=distant[x]+edge[temp].w; if(!rejudge[edge[temp].to]) { t=t%n+1; q[t]=edge[temp].to; rejudge[edge[temp].to]=true; } } temp=edge[temp].next; } rejudge[x]=false; } return distant[b]; } int a,b,c; int main() { int ans=0; cin>>n>>m; for(int i=0;i<m;i++) { cin>>a>>b>>c; add1(a,b,c); add1(b,a,c); } for(int i=1;i<=tot;i+=2) { int temp=edge[i].w; edge[i].w=INF; edge[i+1].w=INF; ans=max(ans,spfa(1,n)); edge[i].w=temp; edge[i+1].w=temp; } cout<<ans; return 0; }
玛丽卡 80分
最新推荐文章于 2022-07-08 11:44:46 发布