【LNOI2014】LCA】的更多相关文章

3626: [LNOI2014]LCA Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1266  Solved: 448 [Submit][Status][id=3626" style="color:blue; text-decoration:none">Discuss] Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0). 一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点…
题面 题解 考察\(dep[\mathrm{LCA}(i, x)]\)的性质,发现它是\(i\)和\(x\)的链交的长度. 那么对每个\(i\)所在的链打一个区间加标记,询问时算一下\(x\)所在的链的区间和即可. 如果有\(l \leq i \leq r\)的限制,就进行离线处理即可. 代码 好久之前的代码,有点丑见谅. #include<bits/stdc++.h> #define RG register #define file(x) freopen(#x".in",…
[BZOJ3626]LCA(树链剖分,Link-Cut Tree) 题面 Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. 有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]. (即,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和) Input 第一行2个整数n q. 接下来n-1行,分别…
Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1.设$dep[i]$表示点i的深度,$lca(i,j)$表示i与j的最近公共祖先.有q次询问,每次询问给出l,r,z,求$\sum\limits_{i=l}^{r}dep[lca(i,z)]$.(即求在$[l,r]$区间内的每个节点i与z的最近公共祖先的深度之和) $n,q<=50000$ Input 第一行2个整数n,q.接下来n-1行,分别表示点1到点n-1的父节点编号.…
(7.16晚)更完先在B站颓一会儿-- --------------------------------------------------------------- (以下为luogu题面) 题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. 有q次询问,每次询问给出l r z,求∑(l≤i≤r ​dep[LCA(i,z)]) 输入输出格式 输入格式: 第一行2…
3626: [LNOI2014]LCA Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1428  Solved: 526[Submit][Status][Discuss] Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1.设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先.有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LC…
我校是神校,作业竟然选自POJ,难道不知道“珍爱生命 勿刷POJ”么? 所有注明模板题的我都十分傲娇地没有打,于是只打了6道题(其实模板题以前应该打过一部分但懒得找)(不过感觉我模板还是不够溜要找个时间刷一发). 没注明模板题的都是傻逼题,其实也是模板题. 题目大致按照傻逼程度从大到小排序. POJ 3264 Balanced Lineup 题意:n个数,m个询问,每次问max[l,r]-min[l,r]. 题解:这道题竟然没标注模板题真是惊讶... #include<cstdio> #inc…
代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=5e5+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar();if(ch=='-')f=-1;}while(!isdigit(ch)); do{x=x*10+ch-'0';ch=getchar();}while(isdigit(ch)); return f*x; } struct node{ int…
题意:给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1.设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先.有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)].(即,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和) n<=50000 思路:From THU爷 LYY 我们考虑这样一种暴力: 对于dep[lca(i,j)],可以将0~i路径上的点的权值+1,那么答…
Codevs 1036 商务旅行 #include<cstdio> #include<cmath> #include<algorithm> using namespace std; ; ,tot=,last[maxn],dep[maxn],p[maxn][]; struct edge{ int to,pre; }e[maxn<<]; void read(int &k){ k=; ; char c=getchar(); ),c=getchar(); +…