csps考前的一些总结(然而可能并没有用)

Posted wwb123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csps考前的一些总结(然而可能并没有用)相关的知识,希望对你有一定的参考价值。

图论:

  一.最短路:

    1.spfa算法中的vis数组记录的是有没有入队,防止多次入队,通过松弛操作来达到最优解

    2.dijkstra算法的vis是记录是否出队,也就是说根据贪心的过程,我们在优先队列里可能会多次放一个点

    但是我们只需要用距离最小的点来更新,其他入队的相同点不能更新来保证时间复杂度

    3.对于一些特殊的题需要求到某个点的第d小路径,我们只能用dijkstra+堆来维护

    因为我们对于$x->to$的更新必须保证x已经更新为最优解,然后注意vis数组需要用

    对于每个点用堆储存他的d+1小值,更新完后的堆首就是答案  

  二.欧拉路

    1.判定细节:对于欧拉路,有向图中出度-入度==1-1的点各有一个,其余入度==出度

                无向图中度数为奇的点有两个,其余为偶

          对于欧拉回路,有向图所有点入度==出度

                  无向图度数均为偶

    2.实现:可以用手工栈+当前弧优化,

    st[++top]=qidian;
    while(top>0){
        int x=st[top];int i=head[x];
        while(i&&vis[i])i=e[i].n;
        if(i){
            ++top;
            int to=e[i].to;stb[top]=id[i];vis[i]=1;
            if(T==1){vis[i^1]=1;}
            head[x]=e[i].n;
            st[top]=to;
        }
        else{
            ans[++ans[0]]=stb[top];
            top--;
        }
    }

 

 

 

 

          

以上是关于csps考前的一些总结(然而可能并没有用)的主要内容,如果未能解决你的问题,请参考以下文章

NOIP考纲总结+NOIP考前经验谈

php 有趣的代码片段在某些时候可能会有用。

csps前小结

jQuery知识点考前复习总结(详细)

2017.11.7~8模拟测试总结---暨NOIP2017考前对策

「CSPS 2019 十一」 贪心