Solution -「ARC 123F」Insert Addition
大约是翻译了一下官方题解?
@Description@
对于一个整数序列 \(P=(P_{1},\dots,P_{m})\),定义 \(f(P)\) 为一个序列 \(Q\) 满足:
- \(Q_{i}=P_{i}+P_{i+1}\),其中 \(i\in[1,m)\);
- \(f(P)=(P_{1},Q_{1},\dots,P_{m-1},Q_{m-1},P_{m})\)。
给出正整数 \(a,b,N\),其中 \(a,b\leqslant N\),令序列 \(A=(a,b)\),令序列 \(B\) 为一下操作的结果:
- 做 \(N\) 次令 \(A=f(A)\).
- 删除 \(A\) 中大于 \(B\) 的数。
求 \(B_{l,\dots r}\)。
@Solution@
◆ The Coefficient Sequence
构造最终的 \(A\) 序列的过程是这样的:
a,a+b,b \\
a,2a+b,a+b,a+2b,b \\
a,3a+b,2a+b,3a+2b,a+b,2a+3b,a+2b,a+3b,b \\
\dots
\]
可以发现有对称性。此时我们先不关心 \(a,b\) 以及 \(N\) 的大小,反之,我们来观察其序列系数,也就是把每个元素看成 \(xa+yb\),其系数的 \((x,y)\),上例的序列系数即
(1,0),(1,1),(0,1) \\
(1,0),(2,1),(1,1),(1,2),(0,1) \\
(1,0),(3,1),(2,1),(3,2),(1,1),(2,3),(1,2),(1,3),(0,1) \\
\dots
\]
以下我们称其为 Coefficient Sequence。
◆ The properties of the Coefficient Sequence
现在我们来观察 Coefficient Sequence 的性质。
Observation 1:在 Coefficient Sequence 中相邻的两个二元组 \((x_{S},y_{S}),(x_{T},y_{T})\),都有: \(x_{S}y_{T}-x_{T}y_{S}=1\)。
使用数学归纳法(induction)即证。
Observation 2:对于两个 两个二元组 \((x_{S},y_{S}),(x_{T},y_{T})\),如果他们满足 \(x_{S}y_{T}-x_{T}y_{S}=1\),那么它们在 Coefficient Sequence 中相邻,即 Observation 1 是充要条件。
不会证,大概意会一下吧。
Observation 3:对于一个二元组 \((x,y)\),如果 \(\gcd(x,y)=1\),那么 \((x,y)\) 会出现在 Coefficient Sequence 中。
比较显然,以至于官方题解没有给出证明。
Observation 4:在任意时刻,所有在 Coefficient Sequence 中的 \((x,y)\) 总是呈从左到右的关于值 \(\frac{y}{x}\) 递增(令 \(\frac{x}{0}=\infty\))。
◆ The sequence \(B\) in other words
现在描述序列 \(B\) 变得更加容易,现在我们这样描述它:
对于所有二元组 \((x,y)\) 满足 \(x,y,s.t.x,y\in\mathbb{N},\gcd(x,y)=1,ax+by\leqslant N\),我们对其按 \(\frac{y}{x}\) 排序后形成一个二元组序列 \(\{(x_{i},y_{i})\}\),则 \(B_{i}=ax_{i}+by_{i}\)。
◆ Computing \(B_{n}\)
现在我们来考虑原问题的简化版,我们来计算 \(B_{n}\)。让我们把这个描述成一个计数问题(通过二分 \(\frac{y}{x}\)):
给定正整数 \(a,b,N\),以及一个有理数 \(c\)(二分的值),求二元组 \((x,y)\neq(0,0)\) 的数量,其中 \((x,y)\) 满足
- \(ax+by\leqslant N\);
- \(\gcd(x,y)=1\);
- \(\frac{y}{x}\leqslant c\)。
我们令 \(F(N)\) 为以上问题的答案,同时令 \(G(N)\) 为去掉 \(\gcd(x,y)=1\) 限制的答案。\(G(N)\) 的式子可以很方便的写出来: \(G(N)=\sum_{y=1}^{N}\max\{\lfloor\frac{N-by}{a}\rfloor-\lfloor\frac{y}{c}\rfloor+1,0\}\),同时我们还可以写出 \(G(N)=\sum_{d=1}^{N}F(\lfloor\frac{N}{d}\rfloor)\)。那么再根据 Möbius inversion formula,我们可以表示出 \(F(N)=\sum_{d=1}^{N}\mu(d)G(\lfloor\frac{N}{d}\rfloor)\)。于是计算该问题答案的复杂度就是 \(\mathcal{O}(N)\)。
但是此时我们知道了 \(B_{n}\) 的 \(\frac{y_{n}}{x_{n}}\),怎么知道 \((x_{n},y_{n})\) 呢?我们可以再做一个二分。观察出这样一个规律:若令 \(l=(1,0),r=(0,1)\),那么中间位置就是 \(l+r\)。于是我们可以再次做一个二分,利用 \(\frac{y}{x}\) 单调来做 check。
顺带一提,这个还可以使用 类欧几里得 来计算。
◆ Computing \(B_{l,\dots,r}\)
可以发现这个东西可以知二求一,于是求出 \(B_{l},B_{l+1}\) 就行了。当然也可以求出 \(B_{l},B_{r}\) 然后做二分搜索。
Solution -「ARC 123F」Insert Addition的更多相关文章
- Solution -「ARC 104E」Random LIS
\(\mathcal{Description}\) Link. 给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...
- Solution -「ARC 126E」Infinite Operations
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\),定义一次操作为: 选择 \(a_i<a_j\),以及一个 \(x\in\mathbb R ...
- Solution -「ARC 101D」「AT4353」Robots and Exits
\(\mathcal{Description}\) Link. 有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标 ...
- Solution -「ARC 110D」Binomial Coefficient is Fun
\(\mathcal{Description}\) Link. 给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...
- Solution -「ARC 124E」Pass to Next
\(\mathcal{Description}\) Link. 有 \(n\) 个人站成一个环,初始时第 \(i\) 个人手里有 \(a_i\) 个球.第 \(i\) 个人可以将自己手中任意数 ...
- Solution -「ARC 126F」Affine Sort
\(\mathcal{Description}\) Link. 给定 \(\{x_n\}\),令 \[f(k)=\left|\{(a,b,c)\mid a,b\in[0,c),c\in[1,k ...
- Solution -「ARC 125F」Tree Degree Subset Sum
\(\mathcal{Description}\) Link. 给定含有 \(n\) 个结点的树,求非负整数对 \((x,y)\) 的数量,满足存在 \(\exist S\subseteq V ...
- Solution -「ARC 125E」Snack
\(\mathcal{Description}\) Link. 把 \(n\) 种零食分给 \(m\) 个人,第 \(i\) 种零食有 \(a_i\) 个:第 \(i\) 个人得到同种零食数量 ...
- Solution -「ARC 058C」「AT 1975」Iroha and Haiku
\(\mathcal{Description}\) Link. 称一个正整数序列为"俳(pái)句",当且仅当序列中存在连续一段和为 \(x\),紧接着连续一段和为 \(y ...
- Solution -「ARC 101E」「AT 4352」Ribbons on Tree
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的树,其中 \(2|n\),你需要把这些点两两配对,并把每对点间的路径染色.求使得所有边被染色的方案数 ...
随机推荐
- 【WALT】WALT入口 update_task_ravg() 代码详解
目录 [WALT]WALT入口 update_task_ravg() 代码详解 代码展示 代码逻辑 ⑴ 判断是否进入 WALT 算法 ⑵ 获取 WALT 算法中上一个窗口的开始时间 ⑶ 如果任务刚初始 ...
- Prometheus-2:blackbox_exporter黑盒监控
黑盒监控blackbox_exporter 前边介绍有很多exporter可以直接将metrics暴露给Prometheus进行监控,这些称为"白盒监控",那些exporter无法 ...
- 2023年陕西彬州第八届半程马拉松赛153pb完赛
1.赛事背景 2023年6月3日,我参加了2023陕西彬州第八届半程马拉松赛,最终153完赛,PB了5分钟.起跑时间早上7点30分,毕竟6月天气也开始热了.天气预报显示当天还是小到中雨,上次铜川宜君半 ...
- 刷了一个月AI歌唱的视频 做一个大胆预测
现在的AI热点转到ChatAI和AI唱歌去了 很好理解(现在每天在看Neuro的切片 感慨这才是看V的初心 可惜Neuro这个形象在创立的时候只是一个ChatAI 和游戏用的GameBOT并不是同一个 ...
- Windows10 下 Neo4j1.5.8 安装教程
前言 Neo4j 是一个高性能的.NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中.基于磁盘的.具备完全的事务特性的 Java 持久化引擎,这里就不把他和常用关系型数据库做对比了.因为篇幅 ...
- Centos7下创建Oracle用户
Centos7下创建Oracle用户 Oracle中,一个用户其实就类似于一个数据库,本次就来创建一个新用户 登录 将系统用户切换到oracle用户下 su - oracle -- 启动sqlplus ...
- 【MAUI Blazor踩坑日记】3.Windows标题栏自定义颜色,运行时改变颜色
目录 修改默认颜色 修改运行时颜色 效果图 MAUI中Windows默认的标题栏颜色是灰色的,有一点丑. 如果去掉默认的标题栏,自己画一个,可能会出现问题,也比较麻烦. 想要自定义默认标题栏的颜色,官 ...
- Cilium系列-6-从地址伪装从IPtables切换为eBPF
系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, ...
- mysql根据.frm和.ibd文件恢复数据表
忠人之事受人之托 起因是因为一位朋友的数据库服务器被重装了,只剩下一个zbp_post.frm和zbp_post.ibd文件.咨询我能不能恢复,确实我只用过mysqldump这种工具导出数据 然后进行 ...
- 学习狂神Spring5_课堂笔记(更新中)
Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天. 2002年,首次推出了Spring框架的雏形:interface21框架.官网为:www.interface21.io但是 ...