FBI Warning:本文包含大量人类的本质之一

CF643G

维护一个序列,可以区间赋值,求区间中出现超过 \(p\%\) 的数。

允许输出不对的数,允许重复输出,但是所有对的数都一定要输出。而且个数不能超过 \(\lfloor\frac{100}{p}\rfloor\)。

\(n\le 1.5\times 10^5,p\ge 20\)。

假设就求超过 \(20\%\) 的数。

假如区间长度是 \(k\),那么找出区间第 \(\frac{i}{6}k(1\le i\le 5)\) 大。直接输出即可。

证明?想象把所有数排序后,称第 \(\frac{i}{6}k\) 的位置是关键位置。那么如果一个数至少出现了 \(20\%\),就会出现在至少一个关键位置。

所以输出所有关键位置的数就不会遗漏了。

然而有区间赋值操作……挂了……

考虑另一种做法。怎么线性求呢?

如果是要求至少 \(50\%\) 的,每次两个数打架,擂主被打倒了就换擂主。

\(20\%\) 同理。维护 \(5\) 个擂主,每次一个新数和每个擂主都打架。注意的是如果新数和擂主一样,生命值 \(+=4\)。

放到线段树上,每个节点维护 \(5\) 个擂主,pushup 时更新一下即可。

HDU6087

给两个序列 \(a,b\),初始 \(a,b\) 一样,支持区间求和,

for(int i=l;i<=r;i++) a[i]=a[i-k]
for(int i=l;i<=r;i++) a[i]=b[i]

这三种操作。

\(n,q\le 10^5\),内存限制 64M

明显是区间复制操作。

注意的是复制 \(m\) 次区间不能暴力做,可以类似快速幂的方式。

对于返回操作,复制个节点即可。

时间复杂度 \(O(q\log^2n)\)。

可以过一段时间就重构整棵树,同时垃圾回收,空间就不会炸了。

CF453E

长度为 \(n\) 的序列 \(s\),每过一个时刻 \(s_i+=v_i,s_i=\min(s_i,m_i)\)。

\(q\) 次操作,每次询问区间 \(s\) 的和,同时把 \(s\) 都置为 \(0\)。

\(n,q\le 10^5\)

先考虑每次操作都是全局的情况。(中间会有时刻没有操作,别想了!)

按 \(\lceil\frac{(m_i-s_i)}{v_i}\rceil\) 排序,也就是能量回复满的时间。每次询问二分一下即可。

对于任意区间呢?

发现序列会被分成若干段,每一段内的最后一次清零时间一样。每次操作就是多一个段,删掉完全被覆盖的段,边界段断开。段数的总个数是线性的。

回答询问时,因为段数线性,可以大暴力枚举覆盖的每一段,对每一段分别求。除了初始的一整段稍微注意一下,剩下的其实就是询问区间小于某个数的 \(\lceil\frac{m_i}{v_i}\rceil\) 的 \(v_i\) 的和,和大于某个数的 \(\lceil\frac{m_i}{v_i}\rceil\) 的 \(m_i\) 的和。主席树维护即可。

CF1172F

Ouuan 场 Div1 F 题。

题面太长,不写了。

没听懂,不写了。还是看 ouuan 的题解去。(所以就是咕了)

CF1178G

掉分好场 G 题。

给两个序列 \(a,b\),\(b\) 中都是非负整数。

两种操作:区间给 \(a\) 加一个正数,求区间 \(|a|\times b\) 最大值。

\(n,q\le 2\times 10^5\)。

\(a\) 会慢慢变大,总有一个时刻会从负变正。

把序列分块,对于零散块暴力,对于整块,(咕了,以后再说)

HDU 6337

以前讲过。好像是变成括号序列然后怎么搞的。

咕了。

ICPC2018 Beijing E

维护一个数组 \(a[0\dots 2^k-1]\):

  1. 对于 \(l\le i\le r\) 令 \(a_i'=a_{i\oplus x}\)
  2. 对于 \(l\le i\le r\) 令 \(a_{i\oplus x}'=a_i\)
  3. 对于 \(l\le i\le r\) 令 \(a_i'=a_i\oplus x\)
  4. 对于 \(l\le i\le r\) 求所有二进制中 1 的个数是奇数个的数的下标的异或和

假装 \(k\le 18\) 吧。

发现此时建线段树跟 01 Trie 很像。

对于区间 \([l,r]\) 会拆成一些区间。

对于操作 \(1\) 就相当于每个区间的子树变成了别的一棵长得一样的子树。可以可持久化 01 Trie。

对于操作 \(2\) 差不多。

对于操作 \(3\) 打个标记。

对于操作 \(4\) 记录一下子树奇数偶数的异或和就好了。

CF297E

这个图太**了,不写题面了。

对于两条线段,如果相交了连蓝边,否则连红边。那么要求的就是同色三角形个数。

可以变成求异色三角形个数。最后用总个数减。

可以变成求异色角个数。因为一个异色三角形会有两个异色角。

枚举顶点,分别计算一下蓝边数和红边数,乘起来就好了。

二维数点问题,可以瞎搞。

CF997E

原来不用析合树……

如果固定了一个区间,且 \(x,x+1\) 都在 \([l,r]\) 中,给 \(x,x+1\) 连一条边。点数-边数就是 \([l,r]\) 中的连续段个数。

(欸?不对吧???)

(于是开始思考……)

(于是掉线了)

咕了。

CF1034D

\(n\) 个区间 \([l_i,r_i]\),定义 \(f(l,r)\) 表示第 \(l\) 个区间到第 \(r\) 个区间的并的长度。求前 \(k\) 大的 \(f\) 的和。

\(n\le 3\times 10^5,k\le 10^9\)。

二分第 \(k\) 大的 \(f\) 的值,

(草又掉线了)

咕了。

CF896E

在做分块题前记得看看谁是出题人!

对每个块,每种权值维护链表。

修改时,如果 \(2x\ge len\)(\(len\) 是权值范围,一开始看成 \(10^5\)),暴力做。如果 \(2x\le len\),变成把 \(<x\) 的都 \(+x\),再打个 \(-x\) 的标记。然后更新块内权值范围。由于用链表,可以 \(O(1)\) 合并。

询问时,调用链表的长度即可。

时间复杂度:可以在 \(O(x)\) 时间内把一个块的权值范围减小 \(x\),所以如果把权值范围和 \(q\) 都看作和 \(n\) 同阶,复杂度是 \(O(n\sqrt{n})\)。

牛客4F

太长了,自己看去……

(就没上过线)

咕了。

CF1148H

升分好场 H 题。(草给我们 3600 难度的题几个意思……)

对一个初始时空的序列,支持 push_back,和询问多少个区间满足 \(\mathrm{mex}\) 为一个给定的数,强制在线。

看着难度就知道不可做。

咕了。

ZROI 暑期高端峰会 A班 Day1 序列数据结构的更多相关文章

  1. ZROI 暑期高端峰会 A班 Day1 组合计数

    AGC036F Square Constriants 一定有 \(l_i<p_i\le r_i\). 考虑朴素容斥,枚举每个数是 \(\le l_i\) 还是 \(\le r_i\).对于 \( ...

  2. ZROI 暑期高端峰会 A班 Day4 树上数据结构

    FBI Warning:本文含有大量人类的本质之一. 你经历过绝望吗? [ZJOI2007]捉迷藏 询问树上最远黑点对. 动态边分治可以比点分治少一个 \(\log\). bzoj3730 咕了. [ ...

  3. ZROI 暑期高端峰会 A班 Day2 线性代数

    高斯消元 很普及组,不讲了 当主元没有逆的时候可以辗转相除. 如果也没有带余数除法--没救了 逆矩阵 我们定义矩阵 \(A\) 的逆矩阵为 \(A^{-1}\),满足 \(AA^{-1}=A^{-1} ...

  4. ZROI 暑期高端峰会 A班 Day3 图论

    最短路 NOI2019 D2T1 弹跳 KD 树 线段树套set -> 线段树套并查集? POI2014/2015 ??? \(n\) 个点 \(m\) 条边 DAG.求删掉每个点后 \(1\) ...

  5. ZROI 暑期高端峰会 A班 Day4 生成函数

    一般生成函数 很普及组,不讲了 生成函数是一种形式幂级数,也就是我们只关心系数,不关心未知数具体的值. 比如 \(\sum\limits_{i\ge 0}x^i=\frac{1}{1-x}\).虽然只 ...

  6. ZROI 暑期高端峰会 A班 Day3 字符串

    FBI Warning:本文含有大量人类的本质之一 后缀树 反正后缀树就是反串的后缀自动机的 Parent 树,就不管了. 然而 SAM 也忘了 好的假装自己会吧--dls 后缀自动机 大概记得,不管 ...

  7. ZROI 暑期高端峰会 A班 Day5 杂题选讲

    CF469E \(n\) 个需要表示的数,请使用最少的 \(2^k\) 或 \(-2^k\) 表示出所有需要表示的数.输出方案. \(n\le 10^5,|a_i|\le 10^5\). 首先每个数肯 ...

  8. ZROI 暑期高端峰会 A班 Day5 计算几何

    内积(点积) 很普及组,不讲了. \[(a,b)^2\le(a,a)(b,b)\] 外积(叉积) 也很普及组,不讲了. 旋转 对于矩阵 \(\begin{bmatrix}\cos\theta\\\si ...

  9. ZROI 暑期高端峰会 A班 Day6 离线问题

    FBI Warning:本文含有大量人类本质之一. 动态联通问题 允许离线. 模板,不讲了. 归并排序 %@)(#&%)++%($@)%!#(&%)(&@))) 主定理 U^( ...

随机推荐

  1. Java8 新特性 Stream 非短路终端操作

    非短路终端操作 Java8 新特性 Stream 练习实例 非短路终端操作,就是所有的元素都遍厉完,直到最后才结束.用来收集成自己想要的数据. 方法有: 遍厉 forEach 归约 reduce 最大 ...

  2. Java反射获取泛型类型

    本文链接:https://blog.csdn.net/hongxingxiaonan/article/details/49202613 在Java反射技术的应用中,取得一个类的成员.方法和构造函数相对 ...

  3. .net core启用Swagger

    启用 Swagger 页面    官方文档推荐两种框架:Swashbuckle 和 NSwag,这里使用 Swashbuckle 来生成接口文档. 目录 安装包 添加服务 配置中间件 添加 UI 设置 ...

  4. vb Replace 实现

    今天改一个VB程序时发现程序自带的replace 函数不知什么原因竟然不好用了 所以就自己写了一个玩玩 记录一下 'XGZ '替换字符 Private Function Replace1(ByVal ...

  5. C# VB .NET生成条形码,支持多种格式类型

    条形码简单,方便印刷,因此在各个领域得到了广泛的应用.我们自己的项目里也可以将一些特定的数据以条形码的方式来展示和应用,实现一码走天下.那么如何在C#,.Net平台代码里生成条形码呢?答案是使用Sha ...

  6. kubernetes学习Service之headless和statefulSet结合

    一.首先说headless Service和普通Service的区别 headless不分配clusterIP headless service可以通过解析service的DNS,返回所有Pod的地址 ...

  7. 使用 Python 生成二维码

    在“一带一路”国际合作高峰论坛举行期间, 20 国青年投票选出中国的“新四大发明”:高铁.扫码支付.共享单车和网购.其中扫码支付指手机通过扫描二维码跳转到支付页面,再进行付款.这种新的支付方式,造就二 ...

  8. fastadmin CMS等系列插件安装不成功的问题

    由于fastadmin开发者  没有做到权限优化问题,导致用户在linux服务器上lnmp环境下安装的fastadmin后台安装插件一直产生权限不足,安装不成功的问题, 再次给大家一个具体解决办法 对 ...

  9. LDA-作为线性判别 分类器 推导

    LDA, 即 Linear Discriminant Analysis, 中文翻译为, 线性判别分析. 比较有趣的一点是:LDA 既可以直接用作分类算法, 也可作为特征降维的方法. 给人感觉, 这是将 ...

  10. MySQL修炼之路四

    1. 外键(foreign key) 1. 定义:让当前表字段的值在另一个表的范围内选择 2. 语法 foreign key(参考字段名) references 主表(被参考字段名) on delet ...