90分求助

P2136 拉近距离

小红也能拉近距离?(雾)
by dxy2020 @ 2021-10-02 21:09:47


小明可以找小红,小红也可以找小明。 ~~可能吧...~~
by QcpyWcpyQ @ 2021-10-02 21:10:27


@[QcpyWcpyQ](/user/450861) @[小小蒟蒻一只](/user/366254) 已过,谢谢。
by Hamer_sans @ 2021-10-02 21:17:53


求助 ``` #include<bits/stdc++.h> using namespace std; int N,M; struct edge{ int v; int w; int nex; }Edge[10005]; struct p{ int dis=0x7fffffff; int dis1=0x7fffffff; int head; bool vis; bool vis1; int num; int num1; }k[1005]; int cnt; void add(){ int S,T,W; cin>>S>>T>>W; Edge[++cnt].v=T; Edge[cnt].w=-W; Edge[cnt].nex=k[S].head; k[S].head=cnt; return; } void spfa(){ priority_queue<pair<int,int> > q; k[1].dis=0; k[1].vis=1; q.push(make_pair(0,1)); while(!q.empty()){ int now=q.top().second; q.pop(); k[now].vis=0; if(k[now].num>N){ cout<<"Forever love"; exit(0); } for(int br=k[now].head;br;br=Edge[br].nex){ int son=Edge[br].v,w=Edge[br].w; if(k[son].dis>k[now].dis+w){ k[son].dis=k[now].dis+w; if(!k[son].vis){ k[son].num++; q.push(make_pair(-k[son].dis,son)); k[son].vis=1; } } } } return; } void spfa1(){ priority_queue<pair<int,int> > qq; k[N].dis1=0; k[N].vis1=1; qq.push(make_pair(0,1)); while(!qq.empty()){ int now=qq.top().second; qq.pop(); k[now].vis1=0; if(k[now].num1>N){ cout<<"Forever love"; exit(0); } for(int br=k[now].head;br;br=Edge[br].nex){ int son=Edge[br].v,w=Edge[br].w; if(k[son].dis1>k[now].dis1+w){ k[son].dis1=k[now].dis1+w; if(!k[son].vis1){ k[son].num1++; qq.push(make_pair(-k[son].dis1,son)); k[son].vis1=1; } } } } return; } int main(){ cin>>N>>M; for(int i=1;i<=M;i++){ add(); } spfa(); spfa1(); cout<<min(k[N].dis,k[1].dis1); return 0; } ```
by 00000110hh @ 2022-03-29 18:34:03


|