02 2021 档案

摘要:前言 链式前向星是很常用也很实用的数据结构,主要用来存储边的各种信息,它的空间复杂度比邻接矩阵好了太多太多,可以说是图论中最基础的东西了。 代码 inline void add(int x,int y,int z){ ver[++tot]=y,edge[tot]=z,nxt[tot]=head[x] 阅读全文
posted @ 2021-02-23 16:10 Miraii 阅读(81) 评论(2) 推荐(0) 编辑
摘要:什么是LCA LCA(Least Common Ancestors),有一棵树,若结点z既是结点x的祖先也是结点y的祖先,且z的深度最大,那么称这个结点x是结点a,b的最近公共祖先。 倍增法是什么 其实求LCA,有一个极为朴素的方法,就是先比较两个结点的深度,然后dfs大的直到深度和小的一样,然后这 阅读全文
posted @ 2021-02-21 09:55 Miraii 阅读(168) 评论(2) 推荐(0) 编辑
摘要:[noi2001]食物链 嗯哼,noi里的绿题... 首先,这道题要用并查集应该很容易看出来,因为有"x和y是同类","x吃y"这样的句子,我一开始想的方法是搞三个并查集(好家伙),后来经过尝试无果,因为出现了(xxx,xx,xxxx,yy,y,yyyy)这些我取的不太友好的名字,所以为了易读,就只 阅读全文
posted @ 2021-02-19 20:30 Miraii 阅读(155) 评论(1) 推荐(1) 编辑
摘要:好耶,花了将近一上午,且在Quick_AK的帮助在a了这道模板题 简要思路 这道模板题有两个区间操作 将某区间每一个数乘上 x 将某区间每一个数加上 x 有两种操作,那岂不是要两个tag? (⊙v⊙)嗯,是的 举个栗子: 假设我们维护一个量a,它有两个标记+bc 因为线段 阅读全文
posted @ 2021-02-08 11:10 Miraii 阅读(140) 评论(2) 推荐(0) 编辑
摘要:题目链接:LOJ 咕咕咕 #include <iostream> #include <cstdio> #include <cstring> #define ls p<<1 #define int long long #define rs p<<1|1 using namespace std; int 阅读全文
posted @ 2021-02-07 16:43 Miraii 阅读(164) 评论(3) 推荐(0) 编辑
摘要:线段树的基本用途 查询某个区间 修改某个区间或点 是不是和树状数组很像? 注意 线段树的数组一定要开4n 建树代码 (sum) 通过二叉树的性质可知:对于一个父节点,它的左右两个儿子节点分别为i乘以2,i乘以2+1, 由此可以用数组模拟线段树: inline void build(int p,i 阅读全文
posted @ 2021-02-06 18:35 Miraii 阅读(158) 评论(0) 推荐(0) 编辑
摘要:AC自动机,自动AC机? 代码 #include <iostream> #include <cstdio> #include <queue> #include <cstring> using namespace std; const int N=1e6+5; queue<int> q; char s 阅读全文
posted @ 2021-02-05 19:31 Miraii 阅读(74) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩