摘要:
大意:给一个图,N个点M条边,求s到t最短路径#include#include#include#include#include#includeusing namespace std;int Read(){ int i=0,f=1; char c; for(c=getc... 阅读全文
摘要:
大意:给出两个字符串s1,s2,求s1中包含多少不重叠的子串=s2样例:aaaaaa aaabcde a2输出:30 #includeusing namespace std;const int MAXN=1001;int nxt[MAXN];string s1,s2;... 阅读全文
摘要:
写在前面 之前一直不知道树状数组可以支持区间修改,所以写一篇博客记录一下。 首先给个小栗子: 如下图: 利用差分的思路,就得到下图: 那么如果我们要求将2~4的所有元素+2呢?我们就可以得到下图: 可以发现,差分的第二项和第五项一个加了2,一个减了2,所以对于每次区间[l,r]操作,我们只需要在l和 阅读全文
摘要:
写在前面之前一直不知道树状数组可以支持区间修改,所以写一篇博客记录一下。首先给个小栗子:如下图:利用差分的思路,就得到下图:那么如果我们要求将2~4的所有元素+2呢?我们就可以得到下图:可以发现,差分的第二项和第五项一个加了2,一个减了2,所以对于每次区间[l,r]操... 阅读全文
摘要:
【题目描述】在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间。【输入格式】输... 阅读全文
摘要:
【题目描述】(太长也懒得复制了)题目大意就是:给你N个点,这N个点一开始没有路径相连,然后给出M个操作,包含三个操作:1.Query(x,y):询问x,y之间是否连通。2.Connect(x,y):在x,y之间连一条边。3.Destroy(x,y):将x,y之间的边删... 阅读全文
摘要:
什么是动态树? 动态树(Dynamic Tree)问题是指在树上动态维护相关信息的问题。 一般的动态树问题中,会要求我们维护一个由若干棵子结点无序的有根树组成的森林。并且要求这个数据结构支持对树的分割(删边),合并(加边),对某个点到它的根的路径的某些操作(路径操作)。有时,动态树问题还会涉及对某个 阅读全文
摘要:
什么是动态树?动态树(Dynamic Tree)问题是指在树上动态维护相关信息的问题。一般的动态树问题中,会要求我们维护一个由若干棵子结点无序的有根树组成的森林。并且要求这个数据结构支持对树的分割(删边),合并(加边),对某个点到它的根的路径的某些操作(路径操作)。有... 阅读全文
摘要:
【题目描述】有n个节点N-1条边,这是一颗树,有2个操作:1 x v:表示将节点x的权值+v2 x y:表示查询x到y的路径权值和【输入格式】第一行是数N,表示N个节点,接下一行是n个数,表示每个节点的初始权值。接下来n-1行,每行描述了n-1条边。接下来是一个数q表... 阅读全文
摘要:
1.Dfs序的一些奇奇怪怪的操作和改进 所谓dfs序,就是一棵树被 dfs 时所经过的节点的顺序。一般的作用是维护子树信息,如果记录 dfn[i] 表示 i 号点的 dfs 序,sze[i]表示 i 号点的子树大小,那么 x 是 y 的祖先等价于:dfn[y] ∈ [dfn[x], dfn[x]+s 阅读全文