ARC126F
[ARC126F] Affine Sort
给定一个长为 \(N\) 的序列 \(x\) ,定义 \(f(K)\) 表示满足下述条件的 \((a,b,c)\) 个数:
- \(1\le c\le K,0\le a,b<c\) ;
- \((ax_i+b)\bmod c\) 递增
可以证明 \(\lim \limits_{k\to \infty} \frac{f(K)}{k^3}\) 趋向一个定值,对 998244353 取模。
\(2\le N\le 10^3,\sum\limits_{i=1}^{N}X_i\le 5\cdot 10^5\) , \(X_i\) 两两不同。
Solution
我们记 \(g(k)\) 表示 \(c=k\) 的满足条件的 \((a,b)\) 对数,则:
引理1: \(\lim\limits_{k\to \infty} \frac{g(k)}{k^2}\) 趋向一个定值 \(C\) 。
因此 \(\lim\limits_{k\to \infty}\frac{f(K)}{K^3}=\lim\limits_{K\to \infty} \sum\limits_{k=1}^{K} \frac{g(k)}{K^3}=\lim\limits_{k\to \infty}\sum\limits_{k=1}^{K}\frac{Ck^2}{K^3}=\frac{C}{3}\) 。
约定 \(\{x\}\) 表示 \(x\) 的小数部分,例如 \(\{-5.2\}=0.8\) 。于是我们将原条件转换为:\(\{\frac{ax_i+b}{c}\}\) 单调递增。
因为 \(k\to \infty\) ,不难联想到定义点集 \(D\subset \mathcal R^2\) :\(D=\{(a,b)\in [0,1]^2 | \{ax_i+b\} 单调递增 \}\) 。那么,\(g(k)\) 可以看做是满足 \(0\le a,b<k,(\frac{a}{k},\frac{b}{k}) \in D\) 的点的面积,即 \(g(k)=\text{area}(D)\)。
将这些 \(\{ax_i\}\) 都画在一个单位圆上,它们需要逆时针排布。不难发现,这个 \(\{ax_i+b\}\) 单调递增的充要条件是:\(\sum\limits_{i=1}^{n}\{a(x_{i+1}-x_i)\}=1\) 。同时若 \(a\) 合法,满足条件的 \(b\) 个数为 \(\{a(x_1-x_n)\}\) 。
而对于每个 \(i\) ,\(a\) 只有在 \(\frac{*}{|x_{i+1}-x_i|}\) 的时刻会出现断点(即小数部分 \(±1\) )。总共有 \(\sum\limits_{i=1}^{n} |x_{i+1}-x_i|\le \sum\limits_{i=1}^{n}(x_i+x_{i+1})=\mathcal O(\sum\limits_{i=1}^{n}x_i)\) 个断点。
因此将断点排序,相邻两断点间的 \(\sum\limits_{i=1}^{n}\{a(x_{i+1}-x_i)\}\) 是相同的,而区间内对 \(\text{area}(D)\) 的贡献即为 \(\int_{l}^{r} \{a(x_1-x_n)\}\) ,这是好求的(注意,是趋近于 \(l,r\) ,断点处的取值是忽略的,所以实现上有一些细节)。
时间复杂度 \(\mathcal O(\sum x_i)\) 。
[M-SOLUTIONS F] Random Tournament
有 \(n\) 个人参加比赛,给定两两之间比赛的输赢关系。
比赛规则是,将 \(n\) 个人按照 \(1\) 到 \(n\) 的顺序排列,每次可以挑相邻两人比赛,输的人离场。最后剩下的人是冠军。
求有多少个人可能成为冠军。
\(1\le n\le 2000\) 。
Solution
考虑朴素的区间 DP ,定义 \(f_{l,r,x}\) 表示只考虑区间 \([l,r]\) 的人,\(x\) 能否成为冠军。转移直接是 \(f_{l,r,x}=f_{l,x,x}\&f_{x,r,x}\) 。
注意转移下标的形式,因此定义 \(L_{l,r}\) 表示区间 \([l,r]\) 里 \(l\) 能否成为冠军,\(R_{l,r}\) 同理。
考虑转移,结论是 \(L_{l,r}=\max\limits_{l<k\le r} \{a_{l,k}\&R_{l+1,k}\&L_{k,r}\}\) ,可以这样考虑:
假设 \(l\) 和一些位置比赛,不妨 \(pos_1,\cdots,pos_k\) ,我们随便拎个 \(pos_t,pos_{t+1}\) ,如果 \(pos_{t}\) 打败 \(pos_{t+1}\) ,则可以剔除 \(pos_{t+1}\) ;如果 \(pos_{t+1}\) 打败 \(pos_{t}\) ,则可以剔除 \(pos_t\) 。
也就是说如果 \(l\) 能成为冠军,一定存在一个策略,\(l\) 只和一个位置比赛。因此 DP 式子成立。用 bitset 优化 DP 即可。
时间复杂度 \(\mathcal O(\frac{n^3}{\omega})\) 。
ARC126F的更多相关文章
随机推荐
- cat /proc/cpuinfo 讲解
查看cpu信息有什么用呢,我们来看看到底有哪些用处:1.和云服务提供商核算成本,现在基本是cpu和内存的费用最大,硬盘大小几乎被忽略了2.我们写程序时候是会关注多核还是单核的,否则不能充分利用多线程等 ...
- 新手入门C语言第十章:C作用域规则
C 作用域规则任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数 ...
- 如何调试手机上的网页以及基于Cordova/Phonegap的Hybrid应用
开发手机页面以及Hybird应用时,调试曾经是个老大难问题,不时需要用写log等方式曲线救国. 实际上,Chrome和Android(需要4.4+版本)已经提供了不亚于电脑版本的调试功能,只是看样子还 ...
- android软件简约记账app开发day04-记账页面条目的代码书写
android软件简约记账app开发day04-记账页面条目的代码书写 在前三天我们完成了基本的界面展示,从今天开始,我们进入到后台逻辑代码的编写中,今天开发记账条目的代码 我们在主页面点击记一笔图标 ...
- android软件简约记账app开发day01-今日收支明细的界面绘制
android软件简约记账app开发day01-今日收支明细的界面绘制 导入素材 导入在阿里iconfront图标库下载的字体图标分为大小两种,分别导入到项目目录mipmap-hdpi和mipmap- ...
- 2021.08.09 P5018 对称二叉树(树形结构)
2021.08.09 P5018 对称二叉树(树形结构) [P5018 NOIP2018 普及组] 对称二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求一棵子树,关 ...
- Java基础语法Day_04
第11节 开发工具-IDEA day04_01_集成开发环境IDE的概述 day04_02_IntelliJ-IDEA的安装 day04_03_IDEA的项目结构 day04_04_IDEA的Hell ...
- rocketmq消息及流程
1.为什么用mq 优势 主要有3个: 应用解耦(降低微服务之间的关联). 异步提速(微服务拿到mq消息后同时工作). 削峰填谷(可以消息堆积) 劣势 系统可用性降低(MQ一旦宕机整个系统不可用) 复杂 ...
- XCTF练习题---MISC---glance-50
XCTF练习题---MISC---glance-50 flag:TWCTF{Bliss by Charles O'Rear} 解题步骤: 1.观察题目,下载附件 2.下载完成以后,隐隐约约像是一张动图 ...
- 【MyBatis】多关键字的模糊查询
目录 情景分析 题目 要求 相关代码 Mapper.java Impl.java mapper.xml test.java 思路分析 1.最开始,参数没有使用List,引起的问题 2.Mybatis的 ...