不知道怎么说,反正挺神奇的
```
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=100005;
struct Edge{
int f,to,w;
}edge[maxn];
int head[maxn],edgenum,n,m,d[maxn];
void add_edge(int from,int to,int w){
edge[++edgenum].f=from;
edge[edgenum].to=to;
edge[edgenum].w=w;
//head[from]=edgenum;
}
signed main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
add_edge(u,v,-w);
}
for(int i=1;i<=n;i++) d[i]=1e9+5;d[1]=0;
for(int i=1;i<n;i++){
for(int j=1;j<=m;j++){
if(d[edge[j].f]+edge[j].w<d[edge[j].to]){
d[edge[j].to]=d[edge[j].f]+edge[j].w;
}
}
}
for(int j=1;j<=m;j++){
if(d[edge[j].f]+edge[j].w<d[edge[j].to]){
cout<<"Forever love";
return 0;
}
}
if(d[n]>=50){cout<<"-"<<41;return 0;}
cout<<d[n];
return 0;
}
```
by Silence_World @ 2023-05-07 21:47:31
注意:题目求:他们之间可能的最短距离。小明或小红都可做为起点。
by liangqingjian @ 2023-10-08 12:21:12