首页 > 其他分享 >【CF1693C】Keshi in Search of AmShZ(类dijkstra)

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

时间:2022-10-28 20:44:26浏览次数:52  
标签:Search min geq leq dijkstra Keshi 任意 rk

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

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

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

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

不妨假设所有 \(f\) 都已经求出来了,那么对于任意 \(u\neq n\),将 \(u\) 的所有出点对应的 \(f\) 从小到大排序,设 \(rk_{u,v}\) 表示 \(v\) 排在第几位。

\[f_u=1+\min_{(u,v)\in E}(f_v+out_u-rk_{u,v}) \]

而对于 \(u=n\),应当有 \(f_n=0\)。

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

归纳地假设对于任意 \(u\in S\)(\(S\) 是 \(\{1,\cdots,n\}\) 的子集)有 \(f_u\) 已经确定,且对于任意 \(u\in S,v\not\in S\) 有 \(f_u\leq f_v\)。初始时 \(S=\{n\}\),且对于任意 \(v\not\in n\) 显然有 \(0=f_n\leq f_{v}\)。

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

设 \(f'_u=1+\min\limits_{(u,v)\in E,v\in S}(f_v+out_u-rk'_{u,v})\),那么应有 \(f_u\leq f'_u\)。

设 \(M=\min\limits_{u\not\in S}f'_u\),欲证明对于任意 \(u\not\in S\) 有 \(f_u\geq M\)。

取 \(u=\underset{u\not\in S}{\operatorname{argmin}}f_{u}\),只需证明 \(f_u\geq M\) 即可。若 \(f_u<M\),则应存在 \(v\not\in S\) 使得 \(f_u=1+f_v+out_u-rk_{u,v}>f_v\),这与 \(f_u\) 是最小值矛盾。

取 \(u=\underset{u\not\in S}{\operatorname{argmin}}f'_{u}\),刚刚我们得到了 \(f_u\geq f'_{u}\),而又 \(f_u\leq f'_{u}\),从而我们得到 \(f_u=f_u'\)。

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

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

标签:Search,min,geq,leq,dijkstra,Keshi,任意,rk
From: https://www.cnblogs.com/ez-lcw/p/16837413.html

相关文章

  • Elasticsearch索引文档的父子结构应用
    (父子结构)前言由于Elasticsearch没有表和表的join关系,所以设计出来一种可以文档与文档关联起来的方法,其中包括1.普通内部对象;2.嵌套结构;3.父子结构。==以下操作......
  • Elasticsearch报错:FORBIDDEN/12/index read-only / allow delete (api)
    原因当ES数据所在目录磁盘空间使用率超过90%后,ES将修改为只读状态,所以初步判断是磁盘空间不足导致ES不允许写入。临时解决方案PUT/_all/_settings{"index.blocks.r......
  • [TKDE 2022]HyperISO Efficiently Searching Subgraph Containment in Hypergraphs
    [TKDE2022]HyperISO:EfficientlySearchingSubgraphContainmentinHypergraphs总结涉及了合理的过滤和匹配顺序策略,第一个实现子超图匹配简介文章的目标是异构超......
  • Elasticsearch 集群健康值红色解决方法
    通过http://10.2.83.29:9100/查询集群状态为红色,说明部分主分片不可用head插件会以不同的颜色显示。绿色——最健康的状态,代表所有的主分片和副本分片都可用;黄色——所......
  • 32-32-Elasticsearch核心原理与索引分析(2)_ev
                                                         ......
  • elasticsearch
    elasticsearchElasticsearch是一个基于Lucene的搜索服务器,也是属于NoSQL阵营的数据库。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口提供给我们操作的......
  • Elasticsearch XPACK安全认证(设置密码)
    Elasticsearch往往存有公司大量的数据,如果安全不过关,那么就会有严重的数据安全隐患。Elasticsearch的安全认证方式有不少,如http-basic,searchguard,shield等,本文讲的是使用......
  • Linux安装ElastSearch
    Linux安装ES准备好Linux系统,软件安装前需要对当前系统做一些优化配置系统配置修改一、内存优化在/etc/sysctl.conf添加如下内容:fs.file-max=655360系统最大打开文......
  • ElasticSearch简介与简单入门
    第1章Elasticsearch概述1.1ElasticSearch是什么ELK:ElasticSearch、Logstash、Kibana等组件组成的技术栈叫做ELK技术栈;ES是一个开源的高扩展的分布式全文搜索引擎,是整......
  • ElasticSearch SQL学习笔记
    ElasticSearchSQL学习笔记基础信息ElasticSearchSQL是一个X-Pack组件,允许ElasticSearch实时执行类似SQL的查询,由ElasticSearch原生支持,无需安装其他插件。基本语法El......