zoukankan      html  css  js  c++  java
  • 未解决之图论寻路问题

    有时候我们想找到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
  • 相关阅读:
    Manage Files on HDFS via Cli/Ambari Files View——如何在ambari上查看HDFS文件
    Windows Authentication
    request.getParameterMap 无法获取到参数的原因
    sql server 分割字符串存储过程
    URI.js – 全能的URL操作库
    低延迟视频流播放方案探索
    mysql 替换函数replace()实现mysql替换指定字段中的字符串
    如何在npm上发布自己的包
    sharp 安装过慢
    Error: EACCES: permission denied, mkdir
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6295401.html
Copyright © 2011-2022 走看看