知识点总结
Dlkoiw
这个作者很懒,什么都没留下…
展开
-
可持久化线段树
可持久化线段树可持久化线段树就是对[1,n]的每一个i,都建一颗线段树,然后为了省空间就复制了一部分的树#include<bits/stdc++.h>using namespace std;const int N=2e5+5;struct zxs{ int l,r,sum,ed;}q[N*18*4];int n,m,a[N],b[N],c[N],cnt=0;int rt[N];int newnode(int id){ q[++cnt]=q[id]; return cnt原创 2020-10-08 15:45:44 · 207 阅读 · 0 评论 -
贪心
浅谈贪心贪心、动归、分治、递归是四大基本算法贪心一定要满足最优字结构。贪心猜结论不难,但要证明准确性确十分有难度(虽然对我来说猜结论也难)证明方法1,围绕(临项交换)fire2,范围缩放3,决策包容性字典树线段重合4,反证法5,数学归纳法...原创 2019-07-20 23:12:42 · 178 阅读 · 0 评论 -
图论
dijstradijstra只能遍历没有负边的图迪杰斯特拉算法是基于贪心的算法,是图论中的基本算法实际上我是习惯写spfa,早就知道spfa会被卡,以前我偏不信这个忠告但经历了多次的超时后,我终于开始认真学dijstra了dijstra算法实际上是贪心每次从队首选出一个dis[u]最小的值,将它做标记,使它不能再被遍历并从它开始遍历,遍历到不在队列里的点就加入队列重复上述操...原创 2019-07-21 23:13:17 · 139 阅读 · 0 评论 -
字符串——string
字符串stringstring 相较于 char 有很多好处函数:lenth() 返回字符串的长度empty()判断字符串是否为空begin()开始位置的下标end()结束位置的下标字符串间的比较string a,b;a+b将b连在a的后面a==b字符串a与b是否相等a>b a字典序是否大于ba<b a字典序是否小于b...原创 2019-07-22 19:28:22 · 111 阅读 · 0 评论 -
动态规划——数位dp
数位dp数位dp实质是记忆化搜索比如给出一个区间[l,r]要你求[l,r]中有多少个数是3的倍数for(int i=l;i<=r;i++){ if(i%3==0) ans++}但是这样时间fuza原创 2019-07-23 10:58:41 · 453 阅读 · 0 评论 -
二分答案
二分答案是一个很神奇的东西,如果答案可以线性判断,那么就可以考虑二分二分可以将一个时间复杂度为O(n)的简化为O(logn)——————————————————————————————————————————————使用二分,首先要满足答案是单调的,其次判断二分出的答案是否满足条件的判断要足够简单——————————————————————————————————————————————...原创 2019-09-06 21:52:27 · 156 阅读 · 0 评论 -
st表
st 表是倍增的产物st表可以维护区间极值(目前我也就只知道维护区间极值,所以这篇博客也就只讲极值)——————————————————————————————————————st表实际上就是优化状态的一种方式,因为我们把两个长度相等区间合并其实可以知道合并后区间的长度,我们可以通过区间长度代替一个难枚举的量,比如区间端点,这时在优化区间长度,因为电脑用2进制可以O(1)求出,所以如果...原创 2019-09-26 18:22:11 · 157 阅读 · 0 评论