首页 > 其他分享 >AGC032 VP记录

AGC032 VP记录

时间:2024-12-02 20:21:32浏览次数:6  
标签:10 匹配 记录 题面 复杂度 VP leq AGC032 解法

A 17:35 +0

B 39:51 +0

C 80:28 +4

A.Limited Insertion

简要题面:

最初有一个空序列,每次操作选定一个 \(i\) 并把 \(i\) 插入到位置 \(i\) ,给定最终序列,构造一种合法方案或者输出 -1 。

\(n \leq 100\)

做法:

简单思考发现每次操作出来的数一定从后往前对应了最终序列中的相同数。

这提示我们在操作的过程中我们可以实时知道当前序列中的数对应在最终序列的位置。

每次操作从后往前枚举操作决策即可。

时间复杂度 \(O(n^2)\)

B.Balanced Neighbors

简要题面:

给定一个整数 \(n\) ,构造一个 \(n\) 个点的简单无向联通图,使得每个点的邻点的点编号和相等。

$ 3\leq n \leq 100$

做法:

样例里给了 \(n=3\) 的构造,尝试手造 \(n=4\) 。

手造+打表 \(n \leq 7\) 的情况,发现都有一个合法图满足邻点编号和为 \(\frac{n(n+1)}{2} - n - [n\mod 2=0]\) 。

所以直接考虑对这个东西构造,容易发现断掉每个点的一条出边即可。

时间复杂度 \(n^2\) 。

C.Three Circuits

简要题面:

给定一个 \(n\) 个点 \(m\) 条边的简单无向联通图,判断这个图的所有边是否可以划分为三个不交的非空集合,使得每个集合内的边构成一个可以重复经过点的环。

\(n,m \leq 10^5\)

做法:

首先原图所有点的度数必须均为偶数。

接下来只需要考虑能否拉出来三个环。

这里提供两个解法,一个是 VP 时的奶龙解法,一个是更好的解法。

奶龙解法

直接跑 dfs ,每次拉出来一个不经过重复点的环,跑两遍以后看还有没有多余的边。

充分性易证,必要性完全没有。

容易发现以下图片中的图便是一个必要性的反例。

反例

解决这个问题也比较容易,直接随机选出边跑 10 次就行了!

时间复杂度 \(O(Tn \log n)\) ,\(T\) 为跑的次数,log 是因为删边比较麻烦所以用 set 维护导致的。

更好的解法

首先图内如果有一个节点度数大于等于 6 ,从这个点拉出来三个环就行了。

所以还不合法的图所有点的度数不超过 4 。

显然有至少三个度数为 4 的节点合法。

恰好两个的情况比较特殊,需要判是否拉出一个环出来会使得图不联通。

时间复杂度 \(O(n)\) 。

D.Rotation Sort

简要题面:

给定一个长度为 \(n\) 的排列 \(p\) 和两个整数 \(a,b\) ,每次操作可以消耗 \(a\) 的代价把某个数向后插入到任意位置或者消耗 \(b\) 的代价把某个数向前插入到任意位置,问把整个序列变为升序的最小代价。

\(n \leq 5000, 1\leq a,b \leq 10^9\)

解法:

容易发现每个数只会被操作一次,同时决策了每个数被操作的方向以后我们就不关心这个数原本的位置了,只需要保证每个数可以被操作到合法位置即可。

设计 dp ,令 \(f_{i,j}\) 表示前 \(i\) 个数中最后一个没有被操作的数为 \(j\) 的可以使这个前缀合法的最小代价。

转移是简单的,如果固定的数较小就往后移或者不动,否则就必须往前移。

时间复杂度 \(O(n^2)\)

E.Modulo Pairing

简要题面:

给定 \(n,m\) 与一个长度为 \(2n\) 的整数序列 \(a\) ,决策一种匹配,使得每个数正好与另一个数匹配,同时每对匹配的数的和 \(\mod m\) 的最大值最小。

\(n \leq 10^5, 1\leq m\leq 10^9, 0\leq a_i < m\)

做法:

非常厉害调整。

参考了 粉兔的题解

先把 \(a\) 排序。

如果把和小于 \(m\) 的匹配连蓝边,大于等于 \(m\) 的匹配连红边,最终的答案一定形如某个前缀中都是蓝边的匹配,且最大和最小依次匹配,后缀中都是红边且最大和最小依次匹配。

证明和匹配的形式粉兔的题解中有很清晰的图片。

知道了这个结论之后就可以二分边界点了,因为靠左的分界点答案更小,合法的分界点一定是一个后缀。

这意味着我们可以二分,时间复杂度 \(O(n\log n)\)

F.One Third

非常恐怖推式子,回家补。

标签:10,匹配,记录,题面,复杂度,VP,leq,AGC032,解法
From: https://www.cnblogs.com/sunrise1024/p/18582341

相关文章

  • 记录---前端实现画中画超简单,让网页飞出浏览器
    ......
  • 物理套卷练习记录
    20242024Nov12024.11.262024南通如皋高三上学期第一次教学质量检测——【练习】81【总结】基本上是统一进度的试卷,但错了很多简单题。电容的定义式为\(C=\frac{Q}{U}\),其中,\(Q\)指平行电容器一个极板所带电荷量的绝对值。【传送门】https://www.doc88.com/p-9572988......
  • 自由学习记录(27)
    event委托在类内可完全修改(前提为该event在类中的声明为public,外部可访问,然后外部访问的时候不能直接改)下面这段代码是在类的内部访问事件voidClearAllListeners(){MyEvent=null;}event修饰的委托字段在类内部没有限制直接赋值的权限,所以可以赋值为null,或......
  • 记录一个前端景深效果的实现
    参考教程:https://blog.csdn.net/aaaa_aaab/article/details/143949881在上述教程的基础上有一些修改,并非是在banner上的应用:展示代码tsimporttype{CSSProperties}from'vue'conststartX=ref(0);constcurrentX=ref(0);constcloudStyle1=ref<CSSPropertie......
  • ALPN复现记录. GAN WGAN .Bilevel Optimization
    titleALPN复现流程GAN与WGAN二阶优化1这篇文章是一篇用于高频遥感图分类的应用型文章,公开数据集程序开源,难度友好,代码清晰程度较好。用'IP'数据集说明,其他类似classAEDataset(Datapath,transform)defgetitem()deflen()--->输出用于生成学习无标签的数据pytorch......
  • 12.2 CW 模拟赛 赛时记录
    前言\(12\)月的第一场,没有大样例这次带了耳塞,注意考试方法其实并不复杂,先看题吧带上耳塞,终于舒服了看题\(\rm{T1}\)结论题?\(\rm{T2}\)\(\rm{HS}\)似乎讲过???但是我忘了,一会看能不能推一下多半是找规律\(\rm{T3}\)性质题?\(\rm{T4}\)数据结构维护吧,......
  • 记录Vue3中使用pinia可能遇到的问题及解决方法
    1.在安装依赖时容易停留pinia,附带持久化插件使用的地址https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/方法:请按照以下步骤:删除C:\Users账户中的.npmrc文件在命令提示符里执行npmcacheverify在命令提示符里执行npmconfigsetregistryhttps://regi......
  • Centos7.9 安装mysql8.4.3-lts 记录过程
    1、下载并上传mysqlrpm安装包tar-xvfmysql-8.4.3-1.el7.x86_64.rpm-bundle.tar2、按照如下顺序执行安装;如果有依赖缺少,执行yum-yinstall依赖名称rpm-ivhmysql-community-common-8.4.3-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.4.3-1.el7.x86_64......
  • 长期记录
    12.1vpCF1528A直接贪心,其实第一下没有反应过来\(\sum|a_i-x|\)是单峰的。B神秘计数,还是老毛病,思路一旦乱了就要画一段时间捋清。C比较擅长的种类,做的很顺。D图论建模,不够熟练,分析本质比较慢。E很牛的计数,感觉做的很不顺,不过细节确实多(都*2900切掉就是胜利直接对......
  • CO模块-专题方案-OKK4-MM模块采购信息记录价格都维护的是含税价格,CO模块CK11N或CK40N
    业务说明:实战项目上,CO模块会使用事务码CK11N或CN40N跑标准成本估算。SAP系统默认采购价格为不含税净价,但是国内项目大部分维护的采购价格都是含税的。那么财务CO模块跑出来的标准成本估算会不会基于采购信息记录含税价格进行估算了(这里有一点需要明确:CO模块针对于BOM中的外购件......