首页 > 其他分享 >古代 ARC 填坑

古代 ARC 填坑

时间:2023-02-01 23:13:11浏览次数:62  
标签:cnt 子树 复杂度 texttt 古代 填坑 ARC Easy mathcal

因为 AGC 已经每场写了题解了,所以这里单独记录集训队作业中 ARC 的部分。一些做过的就不会再写题解了。

ARC095F \((\texttt{Easy} \ 3 / 1)\)

首先给树选定一个根,发现有解的充要条件是所有 \(sz_u > 1\) 的 \(u\) 构成了一条以根为端点的链。考虑该如何最小化字典序。我们把链最后结点的任意一个儿子也加入这条链,并从这条链的根往下走,对于每个点处理其自身和其 \(sz = 1\) 的儿子。具体地,假设遍历到 \(u\) 时排列的前 \(cnt\) 项已经被填好了,当前结点有 \(x\) 个儿子,则在排列的第 \(cnt + 1\) 到 \(cnt + x\) 个位置依次填上 \(cnt + 2, cnt + 3, \cdots, cnt + x, cnt + 1\)。可以证明这是钦定根时最优的构造方法。

根据上述方法,不难发现若根节点有 \(sz = 1\) 的儿子,则把这个儿子翻到根节点上面显然更优。不难发现这样操作以后这条链就成为了原树的一条直径。所以我们只有考虑两个直径端点为根的情况即可。

时间复杂度 \(\mathcal{O}(n)\)。

ARC096E \((\texttt{Easy} \ 3 / 0)\)

简单数数题。考虑钦定 \(i\) 个数不合法。先计算这 \(i\) 个数的方案数:设这些数出现在 \(j\) 个集合中,则方案为 \(\begin{Bmatrix} i + 1 \\ j + 1 \end{Bmatrix}\)(增加一个数 \(-1\) 并分成 \(j + 1\) 个集合,令和 \(-1\) 在一个集合中的数不出现在任何集合中)。这 \(j\) 个集合中还可以有剩下 \(n - i\) 个数,方案数为 \(2^{j(n - i)}\)。剩下的 \(2^{n - i}\) 个集合随意取,方案数为 \(2^{2^{n - i}}\)。

所以答案为

\[\sum\limits_{i = 0} ^ n (-1) ^ i \binom{n}{i} 2^{2^{n - i}} \sum\limits_{j = 0} ^ i \begin{Bmatrix} i + 1 \\ j + 1 \end{Bmatrix} 2^{j(n - i)} \]

时间复杂度 \(\mathcal{O}(n^2)\)。

ARC096F \((\texttt{Medium} \ 4 / 3)\)

首先差分一下,变成把每棵子树看作一个物品,问题就变为了多重背包。当然我们是不可能直接去做的,考虑如下引理:

引理:把子树按照 \(\frac{sz}{sw}\) 从大到小排序,则至少存在一种最优方案,使得其中选择了 \(\ge n\) 次的子树是一个前缀。

使用调整法即可证明。所以我们把每种子树拿出来 \(\min\{n, d\}\) 个背包,剩余的贪心即可。

时间复杂度 \(\mathcal{O}(n^4)\)。

在贪心数据范围越大看起来越对的这种题目中,应当考虑能否钦定一个我们可以接受的范围内的数据进行其他最优化做法,以保证剩余数据贪心的正确性。这种 idea 见过不止一遍了。

ARC098F \((\texttt{Medium} \ 4 / 1)\)

一个显然的性质是我们肯定会在最后一次到达一个点的时候才捐赠。令 \(c_u = \max\{a_u - b_u, 0\}\),则原来的条件等价于在 \(u\) 点的的所有时刻手中的钱数都要 \(\ge c_u\)。

把点权转移到边上。即,令 \((u, v)\) 的边权为 \(\max\{c_u, c_v\}\)。考虑建出类似 Kruskal 重构树的结构,具体地,按照 \(c_u\) 从小到大的顺序枚举 \(u\),然后枚举使得 \(c_v \le c_u\) 的每条出边 \(v\) 并尽量添加边。

我们在这棵树上 dp,设 \(f_u\) 表示以 \(u\) 为根的子树的答案。因为走完所有子树最后再回到 \(u\) 捐赠肯定不优,所以我们的方案是选择一棵子树 \(v\),先走完其它子树,然后回到 \(u\) 捐赠,再往 \(v\) 里走。因为路途中钱数单调不增而 \(c_u\) 又是子树中的最大值,所以 \(v\) 子树以外的限制肯定是最后往 \(v\) 走的这一下最紧。设 \(s_u\) 表示子树 \(b\) 的和,我们有转移

\[f_u = \min_v \{s_u - s_v + \max\{c_u, f_v\}\} \]

特别地,当 \(u\) 没有儿子时,\(f_u = \max\{a_u, b_u\}\)。

时间复杂度 \(\mathcal{O}(n \log n)\)。

这题没有想出来的原因主要是受了既定模型的影响,认为本题也存在一种类似的贪心方法,以至于看到路径最大值这种东西都没有往重构树上面想。

ARC099F \((\texttt{Easy} \ 1 / 2)\)

直接哈希即可。

时间复杂度 \(\mathcal{O}(n \log n)\) 或 \(\mathcal{O}(n)\)。

ARC100F \((\texttt{Easy} \ 3 / 2)\)

简单数数题。首先判掉 \(a\) 中本身包含 \(k\) 阶排列的情况,并考虑统计没有出现 \(k\) 阶排列的序列中 \(a\) 的总出现次数。称没有出现 \(k\) 阶排列的序列为合法序列。

设 \(f_{i, j}\) 表示长度为 \(i\) 的合法序列,最后恰有 \(j\) 个元素互不相同的方案数;\(g_{i, j}\) 表示这些合法序列中长度为 \(m\) 的没有重复元素的子串的总个数。\(f\) 和 \(g\) 显然都可以在 \(\mathcal{O}(nk)\) 内求出。

分类讨论。若 \(a\) 中没有重复元素,则总出现次数为 \(\sum_j g_{n, j} \cdot \frac{(k - m)!}{m!}\);否则其左右两侧独立,设两侧恰有 \(l, r\) 个元素互不相同,则枚举 \(a\) 出现的位置,总出现次数可以表示为若干个 \(f_{*, l} \cdot f_{*, r}\) 之和。

时间复杂度 \(\mathcal{O}(nk)\)。

ARC101E \((\texttt{Easy} \ 1 / 1)\)

简单数数题。直接容斥 + 树上背包即可。

时间复杂度 \(\mathcal{O}(n^2)\)。

ARC102F \((\texttt{Medium} \ 4 / 1)\)

很有意思的结论题,哪天把题解补上。

ARC103D \((\texttt{Easy} \ 2 / 1)\)

想复杂了!!!!

首先有解的充要条件是所有 \(|x_i + y_i|\) 的奇偶性相同,画个图就可以发现取 \(len = \{2^{30} - 1, 2^{29} - 1, \cdots, 2, 1(, 1)\}\) 就可以解决问题。具体地,每次尽量让曼哈顿距离最小即可。

时间复杂度 \(\mathcal{O}(n \log V)\),其中 \(V = 10^9\)。

ARC103F \((\texttt{Easy} \ 2 / 1)\)

若以重心为根,则对于所有的 \(u\) 都有 \(d_u > d_{fa_u}\)。又因为 \(d\) 互不相同,所以可以按照 \(d\) 从大到小还原。

时间复杂度 \(\mathcal{O}(n \log n)\) 或 \(\mathcal{O}(n)\)。

标签:cnt,子树,复杂度,texttt,古代,填坑,ARC,Easy,mathcal
From: https://www.cnblogs.com/Scintilla/p/17084441.html

相关文章

  • ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据
    全文下载链接:http://tecdat.cn/?p=12174我们被要求在本周提供一个报告,该报告将结合ARMA-EGARCH,集成预测算法等数值方法本文比较了几个时间序列模型,以预测SP500指数的每日......
  • elasticsearch中使用runtime fields
    1、背景在我们使用es的开发过程中可能会遇到这么一种情况,比如我们的线路名称字段lineName字段在设置mapping的时候使用的是text类型,但是后期发现需要使用这个字段来进行聚......
  • # loongarch架构介绍#[三]地址翻译
    作者:蒋卫峰李涛前言本文是loongarch架构介绍系列的第三篇文章。前面的第一篇文章介绍了loongarch架构中的基础指令和使用,第二篇文章介绍了内存模型、原子指令与栅障指令......
  • linux 安装 elasticsearch
    下载#注意下载版本cd/usr/local/srcwgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz2、安装cd/usr/local/srctar-xvfelastics......
  • ElasticSearch实践分享
     背景介绍最近在做一个采购商城搜索的功能,核心功能是根据用户录入的关键字在商品库中根据全称匹配进行检索得到结果方案比较目标在不超过100万的数据集合中,根......
  • ARC 155 题解
    A目前见过的最阴间的A。寻找规律,发现最后的回文串一定是由若干个周期拼起来的。当周期长度为偶数时,\(S\)和\(S'\)可以各拿半个周期。于是kmp求出border,再判一下,但......
  • wsl2和ArchLinux的安装
    版权声明:本文章参考了哔哩哔哩稿件BV1sW411v7VZ,如侵权请主动联系删除1.Wsl2的安装启用适用于Linux的Windows子系统在终端运行:dism.exe/online/enable-fea......
  • ElasticSearch 学习笔记
    ElasticSearch基础知识索引index一个索引就是一个拥有几分相似特征的文档的集合。索引就类似于关系型数据库中的库的概念。类型type一个类型是索引中的一......
  • 序列化对象Serializable和Parcelable
    创建方式Serializable:java自带的序列化api,即实现该接口即可publicclassPersonimplementsSerializable{privatestaticfinallongserialVersionUID=-4298488259......
  • ArcGIS 清除数据坐标信息
    本操作是为了不损坏数据的情况下,保证数据的保密性,主要方法是清除坐标系信息。如下所示,在图层上右键属性,找到【源】,就可以查看数据的坐标系信息。打开【定义投影】工具,该......