
知识点总结
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 · 245 阅读 · 0 评论 -
贪心
浅谈贪心 贪心、动归、分治、递归是四大基本算法 贪心一定要满足最优字结构。 贪心猜结论不难,但要证明准确性确十分有难度(虽然对我来说猜结论也难) 证明方法 1,围绕(临项交换) fire 2,范围缩放 3,决策包容性 字典树 线段重合 4,反证法 5,数学归纳法 ...原创 2019-07-20 23:12:42 · 204 阅读 · 0 评论 -
图论
dijstra dijstra只能遍历没有负边的图 迪杰斯特拉算法是基于贪心的算法,是图论中的基本算法 实际上我是习惯写spfa,早就知道spfa会被卡,以前我偏不信这个忠告 但经历了多次的超时后,我终于开始认真学dijstra了 dijstra算法实际上是贪心 每次从队首选出一个dis[u]最小的值,将它做标记,使它不能再被遍历 并从它开始遍历,遍历到不在队列里的点就加入队列 重复上述操...原创 2019-07-21 23:13:17 · 164 阅读 · 0 评论 -
字符串——string
字符串string string 相较于 char 有很多好处 函数: lenth() 返回字符串的长度 empty()判断字符串是否为空 begin()开始位置的下标 end()结束位置的下标 字符串间的比较 string a,b; a+b将b连在a的后面 a==b字符串a与b是否相等 a>b a字典序是否大于b a<b a字典序是否小于b ...原创 2019-07-22 19:28:22 · 138 阅读 · 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 · 937 阅读 · 0 评论 -
二分答案
二分答案是一个很神奇的东西,如果答案可以线性判断,那么就可以考虑二分 二分可以将一个时间复杂度为O(n)的简化为O(logn) —————————————————————————————————————————————— 使用二分,首先要满足答案是单调的,其次判断二分出的答案是否满足条件的判断要足够简单 —————————————————————————————————————————————— ...原创 2019-09-06 21:52:27 · 193 阅读 · 0 评论 -
st表
st 表是倍增的产物 st表可以维护区间极值(目前我也就只知道维护区间极值,所以这篇博客也就只讲极值) —————————————————————————————————————— st表实际上就是优化状态的一种方式, 因为我们把两个长度相等区间合并其实可以知道合并后区间的长度, 我们可以通过区间长度代替一个难枚举的量,比如区间端点, 这时在优化区间长度,因为电脑用2进制可以O(1)求出,所以如果...原创 2019-09-26 18:22:11 · 192 阅读 · 0 评论