当前位置: 首页 > news >正文

NOI2026 做题记录 三

CF698F Coprime Permutation

link

进行一些合理猜测。

  1. 质因子集合相同的数可以任意互换:显然 \(\gcd(i, j)\)\(1\) 的关系只与质因子集合有关。
  2. 对于质数 \(x,y\) 而言,如果 \(\lfloor \frac{n}{x}\rfloor=\lfloor \frac n y \rfloor\),我们可以将 \(x,y\) 的倍数整体互换。

我们通过打表,可以发现上面两个条件就是充分必要的,于是直接做即可。

CF1693F I Might Be Wrong

link

结论:我们只有可能操作 \(c_0=c_1\) 的区间。

为什么呢?假如我们操作了一个区间 \(c_0-c_1=d>0\),首先这个区间的第一个数必须是 \(1\)(如果是 \(0\),不妨让左端点右移一位肯定更优),我们不妨重新选择一个右端点满足这个新的区间 \(c_0=c_1\),那么我们只用了 \(1\) 的代价把一些 \(0\) 丢到了最左边,至少将问题递归到了 \(d-1\) 的子问题,如此递归,最多 \(d+1\)\(c_0=c_1\) 的操作就可以完成原来的操作。

因此,每次操作,我们肯定要让区间的在包含第一个 \(1\) 的同时,让它的右端点越向右,同时满足 \(c_0=c_1\) 即可。时间复杂度 \(O(n)\)

CF1299D Around the World

link

翻译一下题意,我们可以删掉一些与 \(1\) 相连的边,删掉后,包含 \(1\) 的连通块内,不存在一个简单环的集合,满足这个集合的异或和为 \(0\)

先删掉 \(1\),对于每个连通块,如果这个连通块是线性有关的,那么这个连通块必须和 \(1\) 断开。否则可以和 \(1\) 连接,但是要求所有与 \(1\) 相连的连通块的所有简单环都是线性无关的。我们发现把把本题值域很小,一一因此考虑把所有简单环插入线性基内,对不同的线性基 DP 即可,复杂度 \(O((n+B)B)\),其中 \(B\) 为不同的线性基个数,在本题 \(V\le 31\) 的条件下 \(B=374\)

CF1554E You

link

结论:每一种给 \(n-1\) 条边定向的方案与 \(a_u\) 的方案构成双射。

证明:我们考虑证明定向后每个节点的度数 \(deg_u\),和 \(a_u\) 的定义等价,于是考虑证明不同的定向方向一定能产生不同的 \(deg_u\)。对于一个叶子节点 \(u\),他与父亲的链边决定了的 \(deg_u\);在确定叶子节点后我们把他删掉,不断迭代即可得到定向方案。

由此可以产生推论,\(\sum a_u=n-1\);总方案数为 \(2^{n-1}\)

如果 \(k>1\),可以直接唯一确定定向方案,我们对于可能有答案的 \(k,k>1\)(即满足 \(k|n-1\)) 单独跑一遍暴力,剩下的所有方案都满足 \(k=1\)。本题最大的难点在构造双射。\(O(nd)\),其中 \(d\)\(n-1\) 的因子个数,可以通过一些分析做到 \(O(n\omega)\)\(\omega\)\(n-1\) 的质因子个数。

CF698F Coprime Permutation

link

进行一些合理猜测。

  1. 质因子集合相同的数可以任意互换:显然 \(\gcd(i, j)\)\(1\) 的关系只与质因子集合有关。
  2. 对于质数 \(x,y\) 而言,如果 \(\lfloor \frac{n}{x}\rfloor=\lfloor \frac n y \rfloor\),我们可以将 \(x,y\) 的倍数整体互换。

我们通过打表,可以发现上面两个条件就是充分必要的,于是直接做即可。

CF1693F I Might Be Wrong

link

结论:我们只有可能操作 \(c_0=c_1\) 的区间。

为什么呢?假如我们操作了一个区间 \(c_0-c_1=d>0\),首先这个区间的第一个数必须是 \(1\)(如果是 \(0\),不妨让左端点右移一位肯定更优),我们不妨重新选择一个右端点满足这个新的区间 \(c_0=c_1\),那么我们只用了 \(1\) 的代价把一些 \(0\) 丢到了最左边,至少将问题递归到了 \(d-1\) 的子问题,如此递归,最多 \(d+1\)\(c_0=c_1\) 的操作就可以完成原来的操作。

因此,每次操作,我们肯定要让区间的在包含第一个 \(1\) 的同时,让它的右端点越向右,同时满足 \(c_0=c_1\) 即可。时间复杂度 \(O(n)\)

CF1299D Around the World

link

翻译一下题意,我们可以删掉一些与 \(1\) 相连的边,删掉后,包含 \(1\) 的连通块内,不存在一个简单环的集合,满足这个集合的异或和为 \(0\)

先删掉 \(1\),对于每个连通块,如果这个连通块是线性有关的,那么这个连通块必须和 \(1\) 断开。否则可以和 \(1\) 连接,但是要求所有与 \(1\) 相连的连通块的所有简单环都是线性无关的。我们发现把把本题值域很小,一一因此考虑把所有简单环插入线性基内,对不同的线性基 DP 即可,复杂度 \(O((n+B)B)\),其中 \(B\) 为不同的线性基个数,在本题 \(V\le 31\) 的条件下 \(B=374\)

CF1554E You

link

结论:每一种给 \(n-1\) 条边定向的方案与 \(a_u\) 的方案构成双射。

证明:我们考虑证明定向后每个节点的度数 \(deg_u\),和 \(a_u\) 的定义等价,于是考虑证明不同的定向方向一定能产生不同的 \(deg_u\)。对于一个叶子节点 \(u\),他与父亲的链边决定了的 \(deg_u\);在确定叶子节点后我们把他删掉,不断迭代即可得到定向方案。

由此可以产生推论,\(\sum a_u=n-1\);总方案数为 \(2^{n-1}\)

如果 \(k>1\),可以直接唯一确定定向方案,我们对于可能有答案的 \(k,k>1\)(即满足 \(k|n-1\)) 单独跑一遍暴力,剩下的所有方案都满足 \(k=1\)。本题最大的难点在构造双射。\(O(nd)\),其中 \(d\)\(n-1\) 的因子个数,可以通过一些分析做到 \(O(n\omega)\)\(\omega\)\(n-1\) 的质因子个数。

CF1852E Rivalries

link

对于所有的 \(a_i=x\),只有最左边的位置 \(l\) 和最右边的位置 \(r\) 是有用的,我们把每个数抽象成一个三元组 \((l, r, x)\)

对于 \(x<y\),如果有 \(x\)\([l, r]\) 包含 \(y\)\([l', r']\),那么 \((l, r, x)\) 也是没有用的。去掉这些三元组后,每个三元组都会成为某些区间的权重,因此这些区间不能改变。对于一个保存下来的 \((l, r, x)\) 一定有 \(ans_l=ans_r=x\)

另外还没有填的 \(i\),令 \(b_i\) 为包含 \(i\) 的最大的 \((l, r, x)\),我们显然可以让 \(ans_i=b_i\)。我们也可以让一些数填没有出现过的数 \(y\),只要让最后 \((y, l, r)\) 完全被某一个 \(x\) 偏序即可。

容易发现我们最多只会填一个没有出现过的数。枚举偏序的元组 \((y, l, r)\),则 \(x\)\(<y\) 的最大的没有出现过的数,我们把所有 \(b_i>x\)\(ans_i\) 变成 \(b_i\)\(b_i<x\)\(ans_i\) 变成 \(x\)。另外如果这样填,填完之后 \((x, l, r)\) 并没有被 \((y, l', r')\) 偏序的话,我们还要在 \([1, l'-1]\)\([r'+1, n]\) 选一个代价最小的数,把他变成 \(x\)

以上操作容易用线段树维护,时间复杂度 \(O(n\log n)\)

CF1267H Help BerLine

link

首先选一些位置为 \(1\),我们要保证这些 \(1\) 互不相邻。我们发现如果满足这个条件,并且删去所有 \(1\) 之后,剩下的序列也满足条件,那么加上这些点也一定是合法的。

归纳证明,加上一些 \(1\) 之后,倘若一个区间包含 \(>1\)\(1\),那么删掉这些 \(1\) 后这个区间肯定还有其他颜色。由于我们已经证明了上一层的子问题,所以当前区间也符合要求。

考虑如何选择尽可能多的 \(1\) 在任意时可不相邻。考虑贪心,按时间从后往前枚举点,如果他没被标记就把他选上,并且把出现时间在他之前的点标记。每选择一个点,我们最多标记两个点,因此至少可以选择 \(\lfloor \frac n 3 \rfloor\)\(1\),颜色总数是 \(\log_{\frac 3 2} n\) 规模的。

CF2096F Wonderful Impostors

link

考虑求出所有的 \(p_r\) 表示最小的 \(l\) 满足 \([l, r]\) 是合法区间,用双指针求出这个数组。

当前合法的区间为 \([l, r]\),我们现在尝试加入 \(r+1\)

  • 加入一个语句 \(1\):判断 \([vl, vr]\) 是否至少有一个点没有被语句 \(0\) 覆盖。
  • 加入一个语句 \(0\):判断之前有没有语句 \(1\) \(x\) 因为这个语句而全部被覆盖。如果存在这样的 \(x\)\(x\) 肯定与 \(r+1\) 有交,那么找到加上 \(r+1\)\(r+1\) 左右两端第一个没有覆盖的点 \(vl,vr\),那么 \(x\) 一定被 \((vl, vr)\) 包含,判断有没有这样的 \(x\) 即可。

如果可以加入 \(r+1\),那我们直接加入;若不能,删掉 \(l\) 后接着判断。时间复杂度 \(O(n\log n)\)

CF2097E Clearing the Snowdrift

link

由于只会减最大值,考虑把所有最大值用一些操作减小到次大值,再将所有次大值减小到第三大值……

每次要用尽可能少的线段覆盖所有的最大值,令初始 \(p=1\),若 \(p\) 不是当前最大值 \(p\gets p+1\);否则我们覆盖 \([p, p+d-1]\),再令 \(p\gets p+d\)。我们需要维护一个数据结构,将一个点改为当前最大值,并查询从 \(p=1\)\(d\) 边的次数,用 LCT 解决即可,复杂度 \(O(n\log n)\)

CF2066E Tropical Season

link

初始时我们要找到一对质量相等的桶,对他们进行比较后,可以获得所有 \(2k\) 的自由水量,记为 \(L\)。之后我们可以选择让一个 \(a_i\le L\),令 \(L\gets L+a_i\);或者选择 \(a_i,a_j>L,|a_i-a_j|\le L\),并让 \(L\gets L+a_i+a_j\)。我们发现这个过程可以直接暴力跳,操作的次数不会超过 \(O(\log V)\) 次。

证明:如果吞并了比自己小的水桶,如果下一次还能吃且吃了 \(x\),那么有 \(x>L\),两次操作内 \(L\) 至少翻倍;如果 \(L\) 这一次吞了两个比他更大的,那么 \(L\) 直接变成原来的至少三倍。

用喜欢的数据结构维护即可,复杂度 \(O(q\log^2 V)\)

CF2119F Volcanic Eruptions

link

当前点与岩浆的距离不会增大。我们只需要保证终点合法即可。

当跳到一对相邻的 \(11\) 之后,我们可以无限延长路径。我们至多只会跳一对相邻的 \(11\)

考虑解的形态。枚举最后的终点 \(t\),我们在 \(st\to t\) 的路径上可能会选择走出路径跳一对 \(11\) 再走回来,在这之前的所有路径要求 \(-1,1\) 交错,这样把解分成了三个结构。预处理每个点出发到 \(11\) 对的最短路径,再从 \(st\) 开始 dfs,容易 \(O(n)\) 求出答案。

CF2127F Hamed and AghaBalaSar

link

转化题意,我们把一个 \(a\) 分成尽可能多段,每一段的结尾都是 \(a_n\),贡献即为每一段的结尾-开头值之和。

\(S(n, m, k)\) 表示 \(n\) 个变量 \(a_1\dots a_n\) 满足 \(a_i\in [0, k]\land \sum a_i=m\) 的合法的 \(a\) 的方案数。

枚举 \(a_n=k\)

  1. 每一段尾 \(i\) 的贡献,这里每出现一个结尾就会有 \(k\) 的贡献:
  1. \(i=n\),方案数为 \(S(n-1, m-k, k)\)
  2. \(i\neq n\),方案数 \(S(n-2, m-k-k, k)\)
  1. 每一段开头的贡献:
  1. \(i=1\),要求 \(a_n=k\),此时每个数是平等的,\(a_1\) 的期望即 \(\frac {m-k}{n-1}\),方案有 \(S(n-1, m-k, k)\)
  2. \(i\in [2, n-1]\),要求 \(a_{i-1}=a_n=k\)\(a_i\) 的期望 \(\frac {m-k-k}{n-2}\),方案数为 \(S(n-2, m-k-k, k)\)
  3. \(i=n\),此时要求 \(a_{n-1}=a_n=k\),方案数 \(S(n-2, m-k-k, k)\),期望即为 \(k\)

复杂度是调和级数 \((m\log m)\)

CF2034H Rayan vs. Rayaneh

link

等价于找到一个集合 \(S\),满足 \(\forall x \in S,\gcd_{(y\in S \setminus x)} y \nmid x\)

对每个 \(x\in S\) 分解质因子,条件可以看成,对于每个 \(x\),满足存在质数 \(p\),满足 \(p\)\(x\) 中的次幂是严格最小的。

反过来思考,设 \(C=p_1^{r_1}\times p_2^{r_2}\times\dots\times p_k^{r_k}\)\(f_x\)\(a\)\(x\) 的倍数个数,如果有 \(\forall i \in [1, k], f_{C/{p_i^{r_i}}}<f_C\),那么我们就能找到一组 \(k\) 个数的解。

这里显然要求 \(C/{p_i^{r_i}}\le V=10^5\),如果 \(k\ge 3\),我们有最小的 \(p_i^{r_i}\le \sqrt V\),那么 \(C\) 的个数不超过 \(V\sqrt V\) 个,可以直接暴搜枚举。\(k=2\) 时我们要找到一组 \(a_i,a_j\) 满足 \(a_i \nmid a_j \land a_j\nmid a_i\),对于每个 \(i\) 判定一下是否所有的 \(a_j>a_i\)\(a_j\) 都是 \(a_i\) 的倍数即可。

本题较为卡常,需要给暴搜加上减枝才可通过。

http://www.jsqmd.com/news/304585/

相关文章:

  • 智能体设计模式一
  • 2026年 智能高定品牌推荐榜单:整屋/全屋/家具/家居/一站式/实木智能高定,匠心融合科技与美学的未来生活解决方案
  • 风雪守通信 初心护畅通—临沂郯城联通抢修团队风雪中的坚守
  • 【开题答辩全过程】以 基于j2ee的问卷调查系统为例,包含答辩的问题和答案
  • 十件实事映初心,暖心工程聚合力 ——临沂联通2025年员工关爱行动绘就幸福画卷
  • 【开题答辩全过程】以 基于微信小程序的社区养老积分银行系统的设计为例,包含答辩的问题和答案
  • vllm设置参数 llm调用显存使用1gb
  • 学习笔记——ADC(模数转换器)技术
  • 【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
  • 传输层协议UDP和TCP
  • 50. 用户友好的提示系统:架构师如何实现实时反馈?
  • 2026激光切管机十大品牌:口碑实力诚信正规优秀厂商推荐
  • RPC 代理远程注入dll获得shell
  • 在Vue3中如何防止用户重复提交?
  • BUU-[BJDCTF2020]ZJCTF,不过如此
  • Sealos 私有化 vs 公有云:什么场景该选哪个
  • 2026年高定木作/轻法式木作厂家推荐榜:门墙柜一体化、整屋定制、全屋木作,匠心工艺与空间美学融合之选
  • 深度测评!MBA必看8款AI论文工具:开题报告与文献综述全解析
  • 提示工程架构师案例:法律领域模型的提示适配准确性提升方案(附数据集)
  • 三台机器部署 Sealos 私有云,完整操作手册
  • FT232R USB UART驱动下载 附快速安装方案
  • MCP通信的双方是谁?
  • 使用YOLOv26实现乌鸦鸽子麻雀等城市鸟类自动检测与分类
  • 人群仿真软件:Vadere_(15).社区与支持资源
  • 2026年度热门盘点原创音乐人首选的5款AI编曲软件
  • 怎么快速完成编曲?盘点原创音乐人常用的5款AI编曲软件
  • 统一白名单服务治理组件
  • 企业级远控赋能跨境电商:企业如何实现云端运营提效?
  • 专科生必看!10个高效降aigc工具推荐,避坑指南来啦
  • archlinux 更新遇到问题