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
  • 相关阅读:
    《Java4Android视频教程》学习笔记(二)
    漫画
    MyEclipse启动时报 Unable to acquire application service. Ensure that the org.eclips
    linux下关闭桌面模式使用命令行模式及其它模式
    nginx 开启fastcgi 可支持php、python、perl等多种语言
    linux下安装ImageMagick和Imagick扩展
    nginx 平滑升级到Tengine并编译concat
    centos 安装详解
    for xml path group by
    泛型对象Lists转xml
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6295401.html
Copyright © 2011-2022 走看看