ZROI 19.07.28 序列数据结构/jk

写在前面

dls:“我不会数据结构,但是APIO的数据结构场我写了,还是蛮简单的。”


T1 CF643G

Sol:

有一个\(O(n\log^2n)\)的做法:假设将区间排好序,取六等分点,则答案一定覆盖了若干点,求区间第\(k\)大即可。

然而会TLE

定义绝对众数为区间中出现超过一半的数。

有一个经典的做法求绝对众数,然而它要在保证有解的时候才保证正确性。

维护当前答案和出现次数,遇到相同则\(+1\),不同则\(-1\),降为\(-1\)的时候就把当前解替换。

显然如果有解的话,答案不会被替换掉(或者最后会换回来)。

可以扩展到\(p\not= \frac{1}{2}\)的情况,维护多个答案,调整加减权重即可。

可以用线段树维护上述操作。

顺便一提dls讲题的时候翻车了23333(被打死

线段树合并两个儿子的时候,先执行替换,再全部\(-1\)。正确性dls也不会不屑于证。

T2 HDU6087

Sol:

不会可持久化平衡树,告辞。

T4 CF453E

Sol:

序列可以分成若干段,每段都是同一时间清空的。

显然段的总数\(O(n)\)。

以按恢复满需要的时间为权建主席树,因为同一段恢复的时间是相同的,一次查询一整段,可以\(O(n\log n)\)做。

T5 CF1172F

Sol:

发现每个位置都是一个分段函数。

考虑用线段树维护区间内函数复合后的结果,可以证明长度为\(l\)的序列,对应的分段函数最多\(l+1\)段。

(证明:显然\(f(x)-x\)始终模\(p\)同余,且对于更大的\(x\),“减去的\(p\)”的个数必然不会更少。由于\([l,r]\)最多减去\(r-l+1\)个\(p\),故最多\(r-l+2\)段)

复合两个函数的时候可以双指针法,每次遇到左边的断点就在右边暴力回退,可以证明回退次数最多一次。

(这里本来应该有一个证明,可是它咕了)(貌似和上面证明有关?)

T6 CF1178G

Sol:

dls:“这题透露着一股垃圾题的气息。果然,\(n^2\)能过。”

标程是分块+凸包,lxl可能会喜欢

绝对值因为每个数只会变\(O(1)\)次,暴力做就好了。

对\((a_i, a_ib_i)\)建凸包,由于\(t_i\)单调,每次最大值只会右移。

复杂度\(O(n\sqrt n)\),据说带\(\log\)会被卡。

有一个非常有趣的邪道解法:

线段树维护凸包,每个节点计算一个\(wait\),表示再增加多少之后,这个节点的某个子树中,左右儿子大小关系就会改变。

每次修改只要不超过\(wait\)就可以打标记。

复杂度不会证明,但是跑的飞快。

T7

题意:维护一个序列,支持:

① 区间每个位置变成下标\(xor X\)的位置的值

② 区间每个下标\(xor X\)的位置变成这个位置的值

③ 区间xor

④ 区间下标二进制有奇数个1的位置的权值和

Sol:

可持久化trie维护一下,每次①②操作是一个子树复制,可能需要打标记啥的,dls懒得搞了(

T8 CF297E

Sol:

共有五种可能的情况,其中有一种很好算。

把线段看成点,两两之间如果相交连红边,否则连蓝边。

转化为统计同色三角形个数。

同色三角形\(=C(n,3)-\)异色三角形。

发现每个异色三角形恰好有两个异色角。

对每个点统计两种颜色的边个数即可。

T9 CF997E

Sol:

扫描线,对每个左端点维护到当前右端点的点数-边数\((x,x+1)\),记作\(cnt\)。

假设新加入了\(x\),将新加边的区间\(cnt\)修改。

线段树可以支持一种标记:对区间\(cnt\)最小值,\(ans+k\)。

然后就做完了。

T10 CF1034D

Sol:

\(k\)这么大,显然不能拿堆做。

可以二分答案。

判断的时候可以双指针。

每次加入\(r\)的时候把\(r\)对应的区间全部覆盖,判断的时候只需要知道\(>l\)的和。

可以用set维护,但是发现每次二分的时候,操作序列都是不变的。

因此预处理出每次操作之后的序列即可,复杂度\(O(n\log n + n\log T)\)。

T11 CF896E

Sol:

分块,用链表记录每块中为\(x\)的数。

在值域中启发式合并。

这样可以在\(O(x)\)内把某块的值域缩小\(x\)。

T12

题意:一个长为\(n\)的序列,支持对\([1,m],[m,r]\)归并排序(然而原序列无序,所以排序完也不一定有序),询问\(a_i\)

Sol:

发现可以划分成若干个段,每次按照段头归并。

可能会拆分若干段,但是每次最多合并一段。

平衡树维护即可。

T13 CF1148H

Sol:

不会。

原文地址:https://www.cnblogs.com/suwakow/p/11375061.html

时间: 2024-08-01 02:01:22

ZROI 19.07.28 序列数据结构/jk的相关文章

ZROI 19.07.28 组合计数/lb

T1 题意:\(n\)个变量,\(0 \leq x_i \leq c_i\),求\(\sum x_i = A\)方案数.\(n \leq 32\). Sol: \(n \leq 10\)的时候容斥很水,然而生成函数掉线了. \(n \leq 32\)的时候,dls:"显然Meet in Middle."然后我又掉线了 全世界就我不会生成函数 T2 题意:求\(0\)到\(2n-1\)的排列\(p\)的个数,使得对于任意的\(i\),\(n^2 \leq i^2+p_i^2 \leq 4

ZROI 19.08.01 树上数据结构

1.总览 LCT 链分治(树剖) 点/边分治 2.点分治 一棵树,点有\(0/1\),多次修改,询问最远的两个\(1\)距离. 建出点分树,每个子树用堆维护:①最远的\(1\)距离:②它的每个儿子的①堆顶: 全局维护每棵子树②堆最大的两个值,每次修改暴力改就可以. 时间复杂度\(O(n \log^2n)\)(基本动态点分都是\(\log^2\)以上的复杂度--然而仍然随便过\(10^5\),小常数可能性微存?). 一棵树,点有点权,每次询问距离一个点不超过\(k\)的点权和. 每个点维护一个深度

ZROI 19.07.30 简单字符串/ll

写在前面:今天下午药丸--不会字符串,全程掉线/ll 给出字符串\(S\),\(q\)次询问,每次给出\(a,b,c,d\),询问\(S[a,b]\)的所有子串和\(S[c,d]\)最长公共前缀的最大值.\(|S|,q \leq 10^5\). 取反建个SAM,每次二分答案.如果存在,合法串的右端点一定在\([a+len-1,b]\),建个主席树维护一下这些后缀在不在对应串的子树里就可以. 有一个字符串\(S\),初始为空.\(m\)次操作,每次操作在第\(x_i\)次操作之后的字符串后面加上一

ZROI 19.07.29 线性代数入门/wq

1.高斯消元 在模意义下依然有效,对主元求逆即可. 甚至可以模合数,需要对两个方程辗转相除,复杂度\(O(n^3\log p)\). 辗转相除法只要能定义带余除法就有效. 逆矩阵:对于矩阵\(A\),定义逆矩阵\(A^{-1}\)为满足\(A\cdot A^{-1}=A^{-1}\cdot A=e\)的矩阵. 求逆矩阵可以高斯消元.设有\(A\cdot A^{-1}=e\)的形式,把\(A\)消元成单位矩阵的过程中,对方程右侧进行同样的操作. 应用:设有方程\(A\cdot x=b\)(大写字母

ZROI 19.07.31 AB班ACM

写在前面:非常感谢cjc和djh两位神仙带我,非常感谢他们给了我一次躺赢的机会. 虽然我被硬点成了代码手,但我写的基本每次都有一堆罚时.然而djh爷全部1A,tql. 题目按照一血时间升序,大致符合难度顺序. A - 10^N+7 中国剩余定理板子.由于我太菜了忘记怎么crt写了,所以码了很长时间. 有个邪道做法,由于只有三个模数,且只有第三个很大.可以枚举答案是第三个模数的多少倍,只需枚举\(17\times 107\)次. B - Coins djh爷打了个表发现\(n\geq 14\)的时

19、 蛤蟆的数据结构笔记之十九链表实现等价类寻找

19. 蛤蟆的数据结构笔记之十九链表实现等价类寻找 本篇名言:"人生有两出悲剧:一是万念俱灰,另一是踌躇满志." 继续来看下通过链表存储实现等价类寻找. 欢迎转载,转载请标明出处: 1.  等价类 等价类(Equivalenceclass)在数学中,给定一个集合 X 和在 X 上的一个等价关系 ~,则 X 中的一个元素 a 的等价类是在 X 中等价于 a 的所有元素构成的集合: a= { X ; X ~ a } 2.  实现 输入一个size,然后初始化out和seq数组. 然后输入数

ZROI 19.08.07模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 A R爷再次翻车,搞出来了一道六年前的CF题. \(100pts:\) 然而不是原题也很简单,斜率优化板子,单调队列搞一下就完事了. 也可以wqs二分,复杂度可以做到\(O(m\log m)\),\(与\)p\(无关.所以R爷差点把\)p$出到\(10^5\). B 本题乱搞做法非常多,所以R爷动用了权限来

2015.07.28 (3)

做多校被虐成狗了---什么都不会啊-- 还是觉得把能够想懂一点的,不管是看的别人的题解或者代码的,还是看的标程的,都记录一下-- 加油------ 1001  Magician 1002  RGCDQ 先筛素数,然后记录 prime[1] = 2; prime[2] = 3; prime[3] = 5; prime[4] = 7; prime[5]=11; 记录下这个是为了计算cnt[]数组,cnt[i]表示i由几种素数构成 再算pre[i][j]表示的是前i个数,f(i) = j的数的个数 然

7月19日28家中国域名商六类国际域名注册保有量统计

IDC评述网(idcps.com)07月23日报道:根据RegistrarStats公布的实时数据显示,截止至2015年7月19日,国内域名注册市场相对稳定,前二十八强域名商排名顺序略有变动.北京中科三方取代广州名扬信息,升至第23,广州名扬信息则跌至第24,排名两两互换.下面,请看IDC评述网对数据进行详细解读. (图1)中国域名注册商(国际域名)保有量TOP15分布图 根据图1,IDC评述网得知,在7月19日,国内域名注册保有量十五强排行榜,与上期7月12日对比,无任何变化.其中,阿里云(万