近期在队友的影响下,开始学习《算法竞赛进阶指南》这本书。对于本来就有一定算法基础的我来说,这本书不论是对于学习不常见的新算法还是对于基础算法的巩固都有很大的帮助。其中,数据结构和图论的一些巧妙的算法令我非常感兴趣。 就数据结构方面的算法来说,线段树在书中是一个重头,这个算法在维护区间上有着很优秀的时 ...
分类:
编程语言 时间:
2020-06-10 19:15:05
阅读次数:
71
九条可怜是一个喜欢数据结构的女孩子,在常见的数据结构中,可怜最喜欢的就是线段树。
现在可怜手上有一棵 $[1,n]$ 上的线段树,编号为 $1$。这棵线段树上的所有节点的 tag? 均为 $0$。接下来可怜进行了 $m$ 次操作,操作有两种:
- $1\ l\ r$,假设可怜当前手上有 $t$ ... ...
分类:
其他好文 时间:
2020-06-10 14:42:13
阅读次数:
55
树状数组 1. 算法分析 树状数组作用 单点修改 区间查询 区间修改(加上差分) 核心思想 把前n个数划分为log(n)个区间,分别维护这log(n)个区间的和,在求解前缀和Sn的时候,从求解n个数字的和变成求解log(n)个区间的和来加快运算 具体操作 维护log(n)个区间,每个区间用数组c来维 ...
分类:
编程语言 时间:
2020-06-09 16:13:22
阅读次数:
60
Charles的功能有? 1 抓取http和https 网络封包(抓包) 2 Charles 的断点请求 通过断点修改参数 在指定接口打上断点 右键点击接口选择 breakpoints 然后 导航栏 Proxy 点击breakpoints settings 在刚打的断点url上双击 参数query ...
分类:
其他好文 时间:
2020-06-09 09:41:58
阅读次数:
46
keoj226 正解 把每一行当成一个字符串插入 trie 树。 对于一个左端点, trie 树上相同的节点表示一类相同的字符串(用 set 记录等价类)。 左端点往右边移动怎么做呢 ? 重新插入 trie 树 ? 类似线段树合并的 trie 树合并 + set 启发式合并即可。 复杂度顶满是所有的 ...
分类:
其他好文 时间:
2020-06-08 20:56:06
阅读次数:
94
1.解密初步现在的软件都会与人工交互,提示信息就成为了一个切入点。CrackMe.exe中代码较少,很快找到切入点。修改跳转语句为nop ,"Patch program" → "Assemble" 修改汇编代码"Patch program"→"Apply paches to input file"保 ...
分类:
其他好文 时间:
2020-06-07 11:11:28
阅读次数:
68
考试拿到题,一看,这不是权值线段树吗? 思路 使用线段树每个节点维护该区间内元素出现次数。 根据题目,对于加入、删除元素,我们可以单点修改(\(+1\)、\(-1\)),对于输出,我们可 随便 遍历找一个出现次数为 $1$ 的元素即可。 代码 具体解释见注释 #include<bits/stdc++ ...
分类:
其他好文 时间:
2020-06-07 10:45:19
阅读次数:
52
模板一:单点修改,区间求和 模板题:hdu1166 敌兵布阵 const int maxn=100010; int a[maxn],tree[4*maxn]; void pushup(int o){ tree[o]=tree[o<<1]+tree[o<<1|1]; } void build(int ...
分类:
其他好文 时间:
2020-06-05 23:02:21
阅读次数:
96
同 Luogu P3373 注意如果写 pushup 的话不要越界 注意更新 sum 值的位置 # include <iostream> # include <cstdio> # define MAXN 100000+5 # define LL long long using namespace s ...
分类:
其他好文 时间:
2020-06-05 19:30:00
阅读次数:
44
福建省队集训 20180709 green 对于排列,r-l+1=max-min+1 可以用单调栈+线段树,维护以当前点位右端点的时候的max-min+l,总修改次数是O(n)的 然后出现10次也差不多,分成10段然后每段有自己的式子,每个点维护10个信息分别查询即可。 equip 给m条边2n个点 ...
分类:
其他好文 时间:
2020-06-05 13:28:25
阅读次数:
59