【AGC035E】Develop(图论,DP)

news/2024/4/28 23:51:25/文章来源:https://blog.csdn.net/ez_lcw/article/details/127429609

对于某个集合 S⊆{1,⋯,n}S\subseteq\{1,\cdots,n\}S{1,,n},考虑能不能删去 SSS

对于任意 x∈Sx\in SxS,连边 x→x−2x\to x-2xx2(如果 x−2∈Sx-2\in Sx2S)及 x→x+kx\to x+kxx+k(如果 x+k∈Sx+k\in Sx+kS),那么能把 SSS 删去当且仅当这张图是一个 DAG。

于是我们先对所有点都这么连边形成图 GGG,那么 SSS 合法当且仅当 SSSGGG 中的导出子图是个 DAG,即无环。

对于所有 x→x−2x\to x-2xx2 的边,它们形成了两条链,分别称为奇链和偶链。然后我们对 kkk 的奇偶性分类讨论:若 kkk 是偶数,那么这两条链是不连通的(独立的),而无环相当于要求每条链中不连续选 k/2+1k/2+1k/2+1 个点,这个方案数很好统计(注意数据范围不大,暴力 DP 即可)。

kkk 是奇数,情况就复杂些。首先,若出现了环,那么一定经过了正偶数条 x→x+kx\to x+kxx+k 的边(经过一次会改变一次当前点的奇偶性)。接下来我们证明,一个简单环必定只经过了恰好 222x→x+kx\to x+kxx+k 的边。

对于任意一个简单环 CCC,取其编号最小的点 aaa,那么环中 aaa 的上一个点一定是 a+2a+2a+2,下一个点一定是 a+ka+ka+k(记为 bbb)。而且我们发现,对于 a,a+2,⋯,b−1a,a+2,\cdots,b-1a,a+2,,b1 中的任意一个点 xxxxxx 在环中都不可能是 +k+k+k 得到的(否则 aaa 不是最小点),于是我们已经可以确定 CCC 的一部分形态,如上图左上。

接着,bbb 在环中接下来肯定是先走若干步 −2-22(可以是 000 步,但不能超过 aaa)走到 ccc,然后再走一步 +k+k+k 走到 ddd,如上图左下。

接着,如上图右,我们又继续考虑 e=b+1e=b+1e=b+1 这个点是从哪来的,若它是 +k+k+k 得到的,那么就必然要经历从 b−1,bb-1,bb1,b 右侧到 b−1,bb-1,bb1,b 左侧的过程(从 ddd 经过若干步到达 a+1a+1a+1),这个过程中一定会再次经过 b−1,bb-1,bb1,b 中的某一个点,这就与该环是简单环矛盾了。从而,eee 是从 e+2e+2e+2 来的。类似地,可以推出 b+1,b+3,⋯,d−2b+1,b+3,\cdots,d-2b+1,b+3,,d2 中的每一个点 xxx 都是从 x+2x+2x+2 来的,这就和 ddd 接起来了。

于是 CCC 只有可能是 a→一步+kb→若干步−2c→一步+kd→若干步−2aa\xrightarrow{\text{一步}+k}b\xrightarrow{\text{若干步}-2}c\xrightarrow{\text{一步}+k}d\xrightarrow{\text{若干步}-2}aa一步+kb若干步2c一步+kd若干步2a 的形态。

那么,现在限制改为了,SSSGGG 中的导出子图不能出现环,且该环恰经过两次 +k+k+k,如下图左上。

在这里插入图片描述

假设 SSS 已经选好了,怎么快速判断是否存在这样的环:可以从每个 SSS 中的奇数编号的点 xxx 开始,按如下方式找一条路径(称为 xxx 的找环路)并检查:

  • 找到最小的 yyy 使得 {y,y+2,⋯,x−2,x}⊆S\{y,y+2,\cdots,x-2,x\}\subseteq S{y,y+2,,x2,x}S

  • 找到最小的 zzz 使得 z∈{y,y+2,⋯,x−2,x}z\in\{y,y+2,\cdots,x-2,x\}z{y,y+2,,x2,x}z+k∈Sz+k\in Sz+kS。若找不到这样的 zzz 那么跳过从 xxx 开始的检查。

  • 找到最小的 www 使得 {w,w+2,⋯,z+k−2,z+k}⊆S\{w,w+2,\cdots,z+k-2,z+k\}\subseteq S{w,w+2,,z+k2,z+k}S

  • 考虑路径 P=x→x−2→⋯→z→z+k→z+k−2→⋯→wP=x\to x-2\to \cdots\to z\to z+k\to z+k-2\to \cdots\to wP=xx2zz+kz+k2w,若 PPP 长度大于等于 k+2k+2k+2,那么我们就找到了一个环。

如上图左下,图中的红蓝两条路径就是从两个不同的 xxx 开始的找环路。

容易证明,按照上述方式,若找不到任何一个环,那么图中就确实不存在环(因为从我们所述的 zzz 跳到 z+kz+kz+k,是能使得 PPP 的长度尽量大的)。

那么考虑 DP。如上图右,设 fi,ℓ1,ℓ2f_{i,\ell_1,\ell_2}fi,1,2 表示考虑完 [1,i][1,i][1,i] 中的奇数点和 [1,i+k][1,i+k][1,i+k] 中的偶数点,其中从 iii 开始的找环路经过的点数为 ℓ1\ell_11,而从 i+ki+ki+k 开始不断 −2-22 所能经过的点的个数为 ℓ2\ell_22 的方案数。

转移的时候,考虑从 i+2i+2i+2 开始的找环路(假设 i+2∈Si+2\in Si+2S):若 i∈Si\in SiS 且存在从 iii 开始的找环路,那么从 ℓ1\ell_11 转移过来;否则从 ℓ2\ell_22 转移过来。转移是 O(1)O(1)O(1) 的。

时间复杂度 O(nk2)O(nk^2)O(nk2),注意 DP 时若 ℓ2>k+2\ell_2> k+22>k+2 我们可以直接把它看做 k+2k+2k+2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404137.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax的概念及jQuery中的Ajax的3种方法,模仿jQuery封装自己的Ajax函数

目录一、网页中如何请求数据资源的请求方式二、Ajax1、什么是Ajax2、Ajax的特点3、Ajax工作原理4、同步与异步的区别三、jQuery中的Ajax1、$.get()函数2、$.post()函数3、$.ajax()函数四、模仿jQuery封装自己的Ajax函数实现效果1、定义options参数选项2、定义resoveData()函数处…

Clustering and Projected Clustering with Adaptive Neighbors

摘要 在本文中,提出了一种新的聚类模型来同时学习数据相似矩阵和聚类结构。新模型通过基于局部距离为每个数据点分配自适应和最优邻居来学习数据相似性矩阵。同时,对数据相似性矩阵的拉普拉斯矩阵施加新的秩约束,使得得到的相似性矩阵中的连…

特殊的线性规划:目标函数中的变量数目少于约束中的变量数目

如下,目标函数为min(x1),该函数中只存在一个变量x1,但是约束中存在x2变量,线性规划还能求解吗?如下,目标函数为min (x_1),该函数中只存在一个变量x_1,但是约束中存在x_2变量&#xf…

ES Elasticsearch

ES 本章知识点 三 ES简介 3.1 数据分类 我们生活中的数据总体分为三种:结构化数据,非结构化数据,半结构化数据结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据&#xff1…

【百日刷题计划 第十一天】——熟悉函数,递归及递推 函数,递归及递推基础题

文章目录💥前言😉解题报告💥[NOIP2001 普及组] 数的计算🤔一、思路:😎二、源码:😮三、代码分析:🤗 鸡汤来咯:💥前言 ☀️大家好☀️,我…

2018年美亚杯电子数据取证大赛-团体赛

😋大家好,我是YAy_17,是一枚爱好网安的小白,正在自学ing。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。 ⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目…

RISC-V学习基础(五)

RISC-V汇编语言 C程序翻译成为可以在计算机上执行的机器语言程序的四个经典步骤。 函数调用规范(Calling convention) 函数调用过程通常分为6个阶段: 将参数存储到函数能够访问的位置。跳转到函数开始位置(使用RV32I的jal指令…

考研图论算法

图论——txf 倘若考研需要像写算法题目那样,写出图论的代码,那无疑图论是最难级别的。 -----Williams Tian 1. 重点表述 ①线形表可以空表,树可以空树,但是图不能一个顶点也没有(允许一条边也没有). ②…

ETC-4 week 3th

ETC-4 week 3th 出奇至胜 read They are only charged for the amount of power they consume on rainy days.They needn’t pay a single cent for their power consumption(消耗能量) on sunny days.(13 june) consume v 消耗 耗尽 吃光 喝光 沉溺 浪费LOL consumes(消耗…

安装docker,打包jar包镜像文件,输出tar压缩包

打包 jar 步骤在文章最后,不需要安装的请直接跳到文末查看 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh设置开机自启并启动docker systemctl enable docker.service启动docker systemctl start docker查看docker状态 systemctl s…

创新洞见|2023年B2B业务为何必须采用PLG增长策略

随着采用PLG模式的大型企业数量不断增加,91%的公司计划在2022年增加对PLG战略的投资,市场上已经验证了PLG公司的表现优于其竞争对手,规模增长更快,并拥有更高的企业价值(EV)。PLG象征着购买决策者的转变&am…

【附源码】计算机毕业设计SSM数据时代下的疫情管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java多线程之Thread和Runnable关于共享资源的对比

背景 Thread和Runnable关于共享资源的对比,网上看到很多不正确的结论如下: Thread类创建多线程,无法保证多个线程对共享资源的正确操作,而Runnable接口可以保证多个线程对共享资源的正确访问。 得到这个结论的原因如下&#xff1…

【Pytorch】learning notes

文章目录【torch.xxx】torch.addmm() / torch.addmm_()torch.clamp() / torch.clamp_()torch.eq() / torch.ne()torch.manual_seed()torch.unique()torch.save() / torch.load()torch.view() / torch.permute() / torch. transpose() / torch.reshape()【torch.cuda.xxx】torch…

可以替代911s5的这几款产品还有跨境人士不知道吗?

不久前跨境电商用户都收到的坏消息无疑就是:911s5正式宣布停止运营并永久关闭。对于911s5,相信几乎所有的跨境电商用户都知道,因为其低廉的价格一直很受欢迎。所以一时间大家纷纷寻找911s5的替代品,但不是那么容易找的。今天这篇文…

投资组合图形化:EAP.util.plot

实证资产定价(Empirical asset pricing)已经发布于Github和Pypi. 包的具体用法(Documentation)博主将会陆续在CSDN中详细介绍,也可以通过Pypi直接查看。 Pypi: pip install --upgrade EAP HomePage: EAP a catchy description …

38 字典名[键名]=值 向字典增加键值对

38 字典名[键名]值 向字典增加键值对 文章目录38 字典名[键名]值 向字典增加键值对1. 语法2. 代码示例1. 字典中有要操作的键名—作用为修改2. 字典中没有要操作的键名—作用是增加3. 课后练习4. 列表增加元素知识回顾5. 总结1. 语法 向字典中增加键值对和修改字典的值的语法结…

开箱即用的数据缓存服务|EMQX Cloud 影子服务应用场景解析

在物联网业务高速迭代的今天,快速连接物联网设备与平台应用,实现业务快速落地与市场验证,是很多企业塑造核心竞争力、实现业务创新的关键。 EMQX Cloud 作为一站式运维代管的 MQTT 消息云服务,可以帮助用户在公有云环境中快速实现…

JavaScript:模拟拍照

实现拍照功能需要使用电脑的摄像头,可以使用 navigator.mediaDevices.getUserMedia() 方法,传递相应的参数就能开启摄像头 navigator.mediaDevices 是一个媒体设备对象,通过 getUserMedia( )方法开启音频和视频媒体设备。 getUserMedia 参数…

文献阅读-融合注意力机制的 IETM 细粒度跨模态检索算法

引用格式:翟一琛,顾佼佼,宗富强,姜文志.融合注意力机制的 IETM 细粒度跨模态 检索算法[J/OL].系统工程与电子技术. https://kns.cnki.net/kcms/detail/11.2422.TN.20220823.1030.004.html 期刊&#xff1a…