2020-08-04

今天复习了一下spfa算法吧。
稠密图单源无负权最短路:Dijkstra。
稠密图单源有负权最短路:SPFA。
稀疏图单源最短路:SPFA或Bellman-Ford。
多源无负权最短路:Floyd。
多源无权最短路:宽搜。
解决问题根节点到各个节点最短距离
方法从根节点起找出其子节点并且更新子节点与根节点的最短距离
参考博客:https://www.cnblogs.com/TFLS-gzr/p/10387463.html
SPFA 适用于存在负值和正值的单源最小路径在小数据方面比迪斯科算法好,但是在特殊数据比如节点值递减,菊花型结构极易被卡稳定性差
时间的复杂度实际上不确定大概在(n-VE)之间

int dis[10005];
int main()
{
    memset(dis,0x3f3f3f3f,sizeof(dis));
    while(!q.empty())
    {
        int k=q.front();q.pop();
        vis[k]=0;//标记不在队列中
        //LLL优化 if(dis[k]*n_n>sum){q.push(k);continue;}else {sum-=dis[k],n_n--;}
        for(int i=1;i<=n;i++)
        {
            if(dis[i]<dis[k]+a[k].dis)
                {dis[i]=dis[k]+a[k].dis;
                if(!vis[i]){
                    //LLL优化 sum+=dis[i];
                    //n_n++;
                    q.push(i);
                    vis[i]=1;
                }
                //SLF优化if(q.empty()||dis[i]<dis[q.front()])q.pushfront(i);//注意q是deque
                //else q.push_back(i);

        }
    }
    //都优化的话写在一起并不冲突
}

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页