09 2019 档案

摘要:struct lsh { int v[MAXN], vl; lsh() { vl = 0; } void pb(int val) { v[vl++] = val; } //向后加元素 void init() { sort(v, v + vl); vl = unique(v, v + vl) - v; 阅读全文
posted @ 2019-09-15 17:47 张浦 阅读(94) 评论(0) 推荐(0)
摘要:题意:求给定区间内不同数的和 经典例题https://vjudge.net/problem/HDU-3333 解题思路: 这两天有点傻,emmm 离线操作 扫一遍数组 对于重复的值树状数组维护最靠近当前坐标的那一个,等同于把之前重复的元素删掉。 这样再对询问进行前缀和计算则只能计算到最靠近当前点的每 阅读全文
posted @ 2019-09-15 17:41 张浦 阅读(110) 评论(0) 推荐(0)
摘要:题意: 给定一个1-n的排列,两种操作 1. (1,pos),indicating to change the value of apos to apos+10,000,000; 2. (2,r,k),indicating to ask the minimum value which is **no 阅读全文
posted @ 2019-09-12 09:13 张浦 阅读(98) 评论(0) 推荐(0)
摘要:题意: 给定区间, 切y次将区间内的树全切完,每次切掉的所有和相同 切每次都是高度为h的横刀(区间高于h的值全部变为h),求第x次切的高度 解题思路: 第x次切的高度不知道,但是第1 - x次一共切掉的高度和剩下的高度可以O1计算而出 可持久化权值树记录cnt和sum 二分枚举一个高度,使得区间内所 阅读全文
posted @ 2019-09-09 23:07 张浦 阅读(168) 评论(0) 推荐(0)
摘要:仅作整理 struct substr { vector <int> st[256]; void init(char *x, int len) { for(int i = 0; i < len; ++i) { st[x[i]].push_back(i); } } bool isub(char *x, 阅读全文
posted @ 2019-09-06 21:39 张浦 阅读(77) 评论(0) 推荐(0)
摘要:spfa求负环,玄学复杂度 int head[MAXN] = {0}, tot = 0; void init(){ mem(head); tot = 0; } struct node { int from, to, val, nex; } edge[MAXN << 1]; int add(int x 阅读全文
posted @ 2019-09-04 16:46 张浦 阅读(90) 评论(0) 推荐(0)
摘要:题意:给出一颗树和Q个询问 对于每个询问 x y 你需要搞出 x 节点 子树上一点 (包括自己) 与 y 值异或的最大值 解题思路: 套路题 子树 → dfs序 异或极值 → trie树 dfs + trie → 可持久化trie 按连续序列建树即可 代码 /* Zeolim - An AC a d 阅读全文
posted @ 2019-09-03 20:44 张浦 阅读(94) 评论(0) 推荐(0)
摘要:给定一个非负整数序列{a},初始长度为N。 有M个操作,有以下两种操作类型: 1、Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1。 2、Qlrx:询问操作,你需要找到一个位置p,满足l<=p<=r,使得: a[p] xor a[p+1] xor ... xor a[N] xor x 最 阅读全文
posted @ 2019-09-03 09:24 张浦 阅读(121) 评论(0) 推荐(0)