道路和航线

道路和航线

https://ac.nowcoder.com/acm/problem/50381

分析

读完题,我们发现这道题就是让你求出在一张混合图中的单源最短路。因为有负环,直接考虑 算法。因为题面上已经保证是没有负环的,所以一定有解。考虑到朴素的 算法容易被卡,这里使用 。将原队列改成双端队列,对要加入队列的点 ,如果 小于队头元素 ,将其插入到队头,否则插入到队尾。

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 8e4 + 100,inf = 0x3f3f3f3f;
int n,P,R,S,dis[N],vis[N];
deque<int> Q;
vector<int> G[N],W[N];
void spfa(int s) {
    memset(dis,inf,sizeof(dis));dis[s] = 0;Q.push_back(s);vis[s] = 1;
    while(Q.size()) {
        int x = Q.front();Q.pop_front();vis[x] = 0;
        for(int i = 0;i < G[x].size();i++) {
            int y = G[x][i],d = W[x][i];
            if(dis[y] > dis[x] + d) {
                dis[y] = dis[x] + d;
                if(vis[y]) continue;
                vis[y] = 1;
                if(Q.empty()) Q.push_back(y);
                else {
                    if(dis[y] < dis[Q.front()]) Q.push_front(y);
                    else Q.push_back(y);
                }
            }
        }
    }
} 
int main()
{
    cin >> n >> R >> P >> S;
    for(int i = 1,a,b,c;i <= R;i++) {
        cin >> a >> b >> c;
        G[a].push_back(b);G[b].push_back(a);
        W[a].push_back(c);W[b].push_back(c);
    }
    for(int i = 1,a,b,c;i <= P;i++) {
        cin >> a >> b >> c;
        G[a].push_back(b);W[a].push_back(c);
    }
    spfa(S);
    for(int i = 1;i <= n;i++)
    dis[i] == inf ? puts("NO PATH"):printf("%d\n",dis[i]);
    return 0;
}
全部评论
分析里面这句话“因为有负环,直接考虑 SPFA 算法。因为题面上已经保证是没有负环的”,应该是因为有负边
3 回复 分享
发布于 2020-09-12 10:46

相关推荐

AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务