摘要: 题面 "luogu" 题解 2019年AC的第一道题~~ ~~函数名命名为rank竟然会ce~~ 我写的是树状数组套值域线段树(动态开点) 操作1:询问$k$在$[l r]$这段区间有多少数比它小,再加$1$ 操作2:前缀和思想得到$[l r]$区间的线段树,然后类似平衡树找第$k$大 操作3:直接 阅读全文
posted @ 2019-01-01 21:29 zzy2005 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 二进制集合枚举子集 枚举一个二进制集合的子集,可以看做原集合忽略0之后不断 1 就有了这样一种算法: i 1使得末尾的0全部变成1,但是由于&s,原来是0的位无论如何也不会变成1,但是原来是1的位就形成了不断 1的模式 卡空间 mx占18位,ls和rs占23位 斐波拉契数列 $f[i] = f[i 阅读全文
posted @ 2018-12-30 16:25 zzy2005 阅读(243) 评论(3) 推荐(0) 编辑
摘要: 题面 "luogu" 题解 树套树(树状数组套动态开点线段树) 静态使用树状数组求逆序对就不多说了 用线段树代替树状数组,外面套树状数组统计每个点逆序对数量 设 $t1[i]$为$i$前面有多少个数比$a[i]$大 $t2[i]$为$i$后面有多少个数比$a[i]$小 那么当删除$a[i]$时 $a 阅读全文
posted @ 2018-12-30 11:10 zzy2005 阅读(183) 评论(0) 推荐(0) 编辑
摘要: LCA Tarjan代码: KMP模板 EXBSGS cpp include using namespace std; define LL long long const int Mod = 1e5 + 7; int gcd(int x, int y) { return !y ? x : gcd(y 阅读全文
posted @ 2018-12-29 17:26 zzy2005 阅读(292) 评论(1) 推荐(0) 编辑
摘要: 题面 "洛谷" "CF" 题解 题意:给你一颗 n 个顶点的树(连通无环图)。顶点从 1 到 n 编号,并且每个顶点对应一个在‘a’到‘t’的字母。 树上的一条路径是回文是指至少有一个对应字母的排列为回文。 对于每个顶点,输出通过它的回文路径的数量。 注意:从u到v的路径与从v到u的路径视为相同,只 阅读全文
posted @ 2018-12-27 10:41 zzy2005 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题面 "洛谷" "bzoj" 题解 离线处理+LCT 有点像 "星球大战" 我们可以倒着做,断边变成连边 我们可以把边变成一个点 连边时,如果两个点本身不联通,就$val$赋为$1$,并连接这条边 如果,两个点本身就联通,那么就不连接这条边,把两点之间的$val$全部赋为$0$ $ans$就是求两点 阅读全文
posted @ 2018-12-26 11:18 zzy2005 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题面 "洛谷" 题解 虚树+dp 关于虚树 "了解一下" 具体实现 cpp inline void insert(int x) { if (top == 1) {s[++top] = x; return ;} int lca = query(x, s[top]); while (top 1 && d 阅读全文
posted @ 2018-12-24 13:43 zzy2005 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题面 "洛谷" 题解 首先,我们知道求最长公共前缀可以用二分答案+hash来求 因为有修改操作, 考虑将整个字符串的hash值放入splay中 接着就是splay的基本操作了 Code 阅读全文
posted @ 2018-12-22 17:07 zzy2005 阅读(176) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 树形dp $f_{i, j}$表示以$i$为根的子树切出联通块大小为$j$的最小答案 显然$f[i][1]$为与$i$连的边数 设$v$是$u$的儿子 那么有$f[u][i]=f[u][i j]+f[v][j] 2$,因为$u v$这条边算了两次 注意$i$要从大到小枚举 Cod 阅读全文
posted @ 2018-12-22 15:24 zzy2005 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "洛谷" "bzoj" 题解 整体二分 Code cpp include define LL long long define RG register using namespace std; inline int gi() { RG int x = 0; RG char c = getc 阅读全文
posted @ 2018-12-21 09:08 zzy2005 阅读(146) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 "主席树" 入门题 但是这里给出整体二分解法 整体二分顾名思义是把所有操作放在一起二分 想想,如果求$[1 n]$的第$k$小怎么二分求得? 我们可以二分答案$k$, $O(n)$统计有多少个数小于等于$k$ 如果对于每个询问都这么搞,肯定不行 我们可以发现,如果每次都搞一次,有 阅读全文
posted @ 2018-12-20 08:04 zzy2005 阅读(591) 评论(0) 推荐(1) 编辑
摘要: 题目链接 "bzoj" "洛谷" 题解 第一问: 假如 $i = j i$ $= $ $a[j] j = a[i] i$ 那么可以对于以上数列跑一边最长不下降子序列 第二问: 将原序列变为上升序列,就等于将新的序列($b_i = a_i i$)变成不下降序列 那么对于最长不下降子序列相邻两点 $c_ 阅读全文
posted @ 2018-12-19 15:25 zzy2005 阅读(110) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 看到异或和最大就应该想到01 trie树 我们记$S_i$为前i项的异或和 那么我们的目的是最大化$S_n$^$x$^$S_{j 1}$ $(l const int N = 600010, M = 25; define LL long long define RG registe 阅读全文
posted @ 2018-12-18 17:40 zzy2005 阅读(124) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 树套树做法暂时不会,先坑着 带修改的莫队 在普通莫队基础上加一个时间量 修改时调整区间,同时调整时间 具体看代码 Code cpp include define LL long long define RG register using namespace std; const 阅读全文
posted @ 2018-12-18 11:20 zzy2005 阅读(110) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 不会lct(好想学啊T_T) 分块 记录每个点跳出当前块需要的步数和跳出块到达的点 Code 阅读全文
posted @ 2018-12-18 09:37 zzy2005 阅读(91) 评论(0) 推荐(0) 编辑