• 未解决之图论寻路问题


    有时候我们想找到v节点之后。。回溯更新答案。。而其他不在路径上的点我们不关心。。注意这种路径可能有很多条。。

    不可能每次都回溯到起点,我的想法是回溯到起点再统计答案来着,目前来看好像不太行

    如果到终点再统计答案的话。。我的一贯做法是dfs参数增加深度关键字。。这样不一样的转折节点同深度的可以刷掉,到终点以后可以方便统计答案

    for{if(v==t) return ?}

    有时候想找到一条可行路径就返回 我的办法是for里面加一个全局的bool..,找到就是false,退出

    对于老生重现赛1,D

    qls的另外一个高级做法。。

     开一棵线段树,每个节点维护把这个区间内的边加进并查集之后的状态
    合并两个区间只需要 O(n) bfs 一下
    那么对于一次查询
    枚举左端点然后线段树上二分右端点
    ==
    当有两个不确定因素时。。我们可以枚举一端。。然后二分另外一端。。
    ==
    然后我对于dij有了新的认识。。虽然说当前选了最短的路。。不一定保证s-t最短。。
    但是你在算d[t]的时候考虑了所有之前所有最短路程的父亲。。可以说是用到了dp的思想。。
    用类似于枚举的方法将不确定性去掉。。
    初始化为无穷大这个trick也是非常非常的精髓。。
    可以说dij就凭这一个算法在我心中已经是大师了。。
    可以说一旦你固定了终点。。对于终点的前一个点来说。。一定是w+dis[pre]越小越好。。w是变化的,dis[pre]也是变化的。。一定要好好体会
    然后对于它的父亲们来说。。w不变。。dis越小越好。。
    =====
    对于这个问题。。网络流的dfs增广路算法很好的解决了。。d=dfs(xxx),if(d...) return d;这样就找到一条合法增广路并且退出了。。注意都找不到合法路径的情况应该返回什么。。对于网络流,,它返回了0
  • 相关阅读:
    [Debug] Make python2.7 use the right version of opencv
    路线图 | 学习OpenCV路线图
    学习笔记 | Princeton
    书单 | 2017年阅读书单
    路线图 | 摄影师成长路线
    学习笔记 | Morvan
    如何在pycharm中进入shell脚本调试代码
    python3运行报错:TypeError: Object of type 'type' is not JSON serializable解决方法(详细)
    动态规划的引入 P1616 疯狂的采药【完全背包】
    动态规划的引入 P1048 采药【01背包】
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6295401.html
Copyright © 2020-2023  润新知