题目意思:有n个人,一开始相互不认识。他们要去参加party,每次参加的人是编号在区间[l,r]内的人。参加完一次party之后,这区间内的人就会相互认识。每次会有有多少对人会新认识。那么用f[i] = j 表示 j - i的人都互相认识了,初始化f[i] = i,那么每次更新l,r话只需要找到是否 ...
分类:
其他好文 时间:
2020-01-28 17:22:09
阅读次数:
63
链接: https://codeforces.com/problemset/problem/915/E 题意: This year Alex has finished school, and now he is a first year student of Berland State Univer ...
分类:
其他好文 时间:
2020-01-28 15:47:37
阅读次数:
78
这个题集好好,那天我做一下(开个大坑?) 嘛,题目难的是查询,这里就只讲查询了 根据题解,我们用线段树维护3个东西 lx:表示从lx走,所能在给定区间里面的最大值 rx:参考上面 mx:表示在给定区间中间截取一段所能取到的最大值 那么对于题目给定的查询区间(假设其为L,R) 我们用线段树去遍历这个区 ...
分类:
其他好文 时间:
2020-01-28 00:00:57
阅读次数:
61
看到这题的第一个想法就是:树链剖分+线段树套平衡树(set)对于每个线段树节点维护一个set,记录该节点代表的区间有哪几种奶牛。效率大概是$O(Nlog^2N)$(也可能是$log^3$?,我太蒻了不会证),吸个氧就过了。代码: 1 #include<cstdio> 2 #include<algor ...
分类:
其他好文 时间:
2020-01-27 23:50:40
阅读次数:
121
一句话题意:树上路径带修第k大 考虑树上不带修第k大怎么做的: 维护一个前缀主席树,然后$u$, $v$, $LCA(u, v)$和$fa[LCA(u, v)]$四个主席树相减即可 这题这么做就会出现一个问题 就是如果修改u的线段树的值,那么所有位于u的子树的线段树都要进行修改 如何高效修改子树内的 ...
分类:
其他好文 时间:
2020-01-27 19:04:24
阅读次数:
60
1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并 3. 平衡树 Treap 随机 ...
分类:
其他好文 时间:
2020-01-27 19:00:01
阅读次数:
97
应该也可以用线段树/树状数组区间更新怪兽的生命值来做 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long pre[200007]; 5 int main(){ 6 io ...
分类:
其他好文 时间:
2020-01-27 17:31:04
阅读次数:
62
树状数组: 一共需要三个函数: ①lowbit(int x) ②add(int x,int p) ③query(int x) 1.动态求连续区间和 给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b]的连续和。 输入格式 第一行包含两个整数 n 和 m,分别表示数 ...
分类:
编程语言 时间:
2020-01-27 17:24:35
阅读次数:
89
题目让我们维护一个连通无向图,边有边权,支持加边删边和询问从$x$到$y$的异或最短路。 考虑到有删边这样的撤销操作,那么用线段树分治来实现,用线段树来维护询问的时间轴。 将每一条边的出现时间段标记到线段树上,表示在这一段询问中这条边存在。 异或最短路的处理方法与 "最大XOR和路径" 类似,给线段 ...
分类:
其他好文 时间:
2020-01-27 14:05:55
阅读次数:
69
题意: 给你N个花瓶,编号是0 到 N - 1 ,一开始每个花瓶都是空的,你有两个操作: 第一个操作: 从第x个花瓶起开始插花,总共插y束,如果遇到花瓶中有花就跳过这个花瓶,直到花插完或者 插到第N-1个花瓶为止,输出插第一朵花的位置和最后一朵花的位置 第二个操作 将第x个花瓶到第y个花瓶之间的花扔 ...
分类:
其他好文 时间:
2020-01-27 13:49:33
阅读次数:
67