• 【CF1693C】Keshi in Search of AmShZ(类dijkstra)


    首先可以钦定每次只删当前点的出边。

    然后可以注意到,在最优策略下,我们肯定不会走回重复的点:否则意味着出现了一个环,那么我们还是需要将这个环上的某条边删掉(否则最坏情况就是绕着环一直走),那么不如第一次走到的时候就删掉。

    这意味着,我们删除某条边不会带来后效性,换言之最优策略中我只关心当前点在哪,并不关心我之前删了哪些边(因为我不可能走到一个重复的点)。

    那么可以考虑设 f u f_u fu 表示当前点在 u u u 时,按最优策略走,最坏情况下到 n n n 所需的步数。

    不妨假设所有 f f f 都已经求出来了,那么对于任意 u ≠ n u\neq n u=n,将 u u u 的所有出点对应的 f f f 从小到大排序,设 r k u , v rk_{u,v} rku,v 表示 v v v 排在第几位。
    f u = 1 + min ⁡ ( u , v ) ∈ E ( f v + o u t u − r k u , v ) f_u=1+\min_{(u,v)\in E}(f_v+out_u-rk_{u,v}) fu=1+(u,v)Emin(fv+outurku,v)
    而对于 u = n u=n u=n,应当有 f n = 0 f_n=0 fn=0

    考虑如何求出 f f f,我们用类似 dijkstra 的方法。

    归纳地假设对于任意 u ∈ S u\in S uS S S S { 1 , ⋯   , n } \{1,\cdots,n\} {1,,n} 的子集)有 f u f_u fu 已经确定,且对于任意 u ∈ S , v ∉ S u\in S,v\not\in S uS,vS f u ≤ f v f_u\leq f_v fufv。初始时 S = { n } S=\{n\} S={n},且对于任意 v ∉ n v\not\in n vn 显然有 0 = f n ≤ f v 0=f_n\leq f_{v} 0=fnfv

    对于任意 u ∉ S u\not\in S uS,将出点中属于 S S S 的那部分点对应的 f f f 排序(它们的 f f f 是已经确定了的),然后对于每个出点 v v v 满足 v ∈ S v\in S vS 定义 r k u , v ′ rk'_{u,v} rku,v 表示 v v v 排在第几位,那么根据归纳假设容易知道 r k u , v ′ = r k u , v rk'_{u,v}=rk_{u,v} rku,v=rku,v

    f u ′ = 1 + min ⁡ ( u , v ) ∈ E , v ∈ S ( f v + o u t u − r k u , v ′ ) f'_u=1+\min\limits_{(u,v)\in E,v\in S}(f_v+out_u-rk'_{u,v}) fu=1+(u,v)E,vSmin(fv+outurku,v),那么应有 f u ≤ f u ′ f_u\leq f'_u fufu

    M = min ⁡ u ∉ S f u ′ M=\min\limits_{u\not\in S}f'_u M=uSminfu,欲证明对于任意 u ∉ S u\not\in S uS f u ≥ M f_u\geq M fuM

    u = argmin ⁡ u ∉ S f u u=\underset{u\not\in S}{\operatorname{argmin}}f_{u} u=uSargminfu,只需证明 f u ≥ M f_u\geq M fuM 即可。若 f u < M f_ufu<M,则应存在 v ∉ S v\not\in S vS 使得 f u = 1 + f v + o u t u − r k u , v > f v f_u=1+f_v+out_u-rk_{u,v}>f_v fu=1+fv+outurku,v>fv,这与 f u f_u fu 是最小值矛盾。

    u = argmin ⁡ u ∉ S f u ′ u=\underset{u\not\in S}{\operatorname{argmin}}f'_{u} u=uSargminfu,刚刚我们得到了 f u ≥ f u ′ f_u\geq f'_{u} fufu,而又 f u ≤ f u ′ f_u\leq f'_{u} fufu,从而我们得到 f u = f u ′ f_u=f_u' fu=fu

    那么我们可以将 u u u 加入 S S S,而且容易证明归纳假设成立。

    其实这个问题和最短路很类似,但需要满足的方程中多了和 f v f_v fv 的排位有关,但 dijkstra 过程中这个东西我们已经求出来了,所以它不将带来什么影响。

  • 相关阅读:
    QT day3
    解决WPF项目xaml出现“正在等待IntelliSense完成”的问题
    Java的<? super T>和<? extends R>理解与应用
    js将html网页转换成PDF并解决了图表文字被切割的问题
    ES6 入门教程 10 对象的扩展 10.4 属性的可枚举性和遍历 & 10.5 super 关键字
    机器视觉系列4:C++部署pytorch模型
    【内网穿透】在Ubuntu搭建Web小游戏网站,并将其发布到公网访问
    使用jenkins连接linux部署jar包
    扩充antd的Icon图标库
    贝塞尔曲线的一些资料收集
  • 原文地址:https://blog.csdn.net/ez_lcw/article/details/126945431