又改了一手,还是最后一个点wa
```cpp
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read(){
ll x=0, f=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch == '-'){
f = -1;
}
ch = getchar();
}
while(ch>='0' && ch<='9'){
x = x * 10 + ch - 48;
ch = getchar();
}
return x * f;
}
inline void write(ll x){
if(x < 0) putchar('-'), x = -x;
if(x > 9) write(x/10);
putchar(x%10+'0');
}
struct edge{
ll to, dis, next;
};
edge e[100086];
ll n, m, head[100086], u, v, w, tot, dis[100086], vis[100086], sla[100086], diss[100086], ans=0x7f7f7f, slaa[100086];
queue<ll> q;
inline void add(ll u, ll v, ll w){
tot++;
e[tot].next = head[u];
e[tot].dis = -w;
e[tot].to = v;
head[u] = tot;
}
inline void spfa_hong(ll s){
memset(diss, 0x7f7f, sizeof(dis));
memset(vis, 0, sizeof(vis));
q.push(s);
diss[s] = 0;
vis[s] = 1;
while(!q.empty()){
int u = q.front();
vis[u] = false;
q.pop();
for(int i=head[u];i;i=e[i].next){
int v = e[i].to;
if(diss[v] > diss[u] + e[i].dis){
diss[v] = diss[u] + e[i].dis;
slaa[e[i].to]++;
if(!vis[v]){
q.push(v);
vis[v] = 1;
}
if(slaa[e[i].to] > n){
cout<<"Forever love";
exit(0);
}
}
}
}
}
inline void spfa_ming(ll s){
memset(dis, 0x7f7f, sizeof(dis));
memset(vis, 0, sizeof(vis));
q.push(s);
dis[s] = 0;
vis[s] = 1;
while(!q.empty()){
int u = q.front();
vis[u] = false;
q.pop();
for(int i=head[u];i;i=e[i].next){
int v = e[i].to;
if(dis[v] > dis[u] + e[i].dis){
dis[v] = dis[u] + e[i].dis;
sla[e[i].to]++;
if(!vis[v]){
q.push(v);
vis[v] = 1;
}
if(sla[e[i].to] > n){
cout<<"Forever love";
exit(0);
}
}
}
}
}
int main(){
n = read(), m = read();
for(int i=1;i<=m;++i){
u = read(), v = read(), w = read();
add(u, v, w);
}
spfa_ming(1);
spfa_hong(n);
for(int i=1;i<=n;++i){
ans = min(ans, dis[i]+diss[i]);
}
cout<<ans;
return 0;
}
```
by Megumimwf @ 2023-02-11 11:50:42
我是真不想说你啊……
by djy070113 @ 2023-02-11 11:54:21
cout<<min(dis[1],diss[n])+min(0,max(dis[1],diss[n]))试试(
by Yoimiyamwf @ 2023-02-11 11:56:40
@[djy070113](/user/158023) ?
by 张恒灿 @ 2023-02-26 10:23:21