题目描述 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点。之后你将依次收到k个指令,每个指令包含两个整数d和t,你需要沿着最短路在t步之内(包含t步)走到d点,如果不能走到,则停在最后到达的那个点。请在每个指令之后输出你所在的位置。 输入 第一行包含三个正整数n,m,k(1<=m ...
分类:
其他好文 时间:
2017-08-26 11:33:27
阅读次数:
142
LCA(Least Common Ancestors) 树上问题的一种。 朴素lca很简单啦,我就不多说了,时间复杂度n^2 1.倍增LCA 时间复杂度 nlongn+klogn 其实是一种基于朴素lca的优化方法, 朴素lca只能一层层的向上查询,而这个有一定状态压缩的想法 即每一次跳2^i层,让 ...
分类:
其他好文 时间:
2017-08-24 21:22:52
阅读次数:
251
题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门。为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络。该网络的结构由N个路由器和N-1条高速光缆组成。每个部门都有一个专属的路由器,部门局域网内的所有机器都联向这个路由器,然后再通过这个通信 ...
分类:
编程语言 时间:
2017-08-22 23:10:12
阅读次数:
283
因为最近在学LCA,所以一看到这道题就果断码了 倍增+LCA。这道题本质就是判断u是否为v的祖先,AC代码: 1 #include<stdio.h> 2 #include<string.h> 3 #define maxn 233333 4 struct node{ 5 int to,next,w; ...
分类:
其他好文 时间:
2017-08-17 20:10:09
阅读次数:
168
题意 第一行输入T,有T组数据。 对于每组数据,给出一棵树,先输入n,然后n-1行,每行两个数a,b,表示a是b的父亲;第n行输入两个数A,B表示询问A和B的最近公共祖先。 题解 LCA模板题。建议先学学LCA 有两种方法,分别是Tarjan和倍增,这里说一说倍增。LCA_倍增是LCA的在线算法,时 ...
分类:
其他好文 时间:
2017-07-29 16:40:15
阅读次数:
183
LCA_Tarjan LCA的Tarjan算法的时间复杂度为O(n+q)是一种离线算法,要用到并查集。Tarjan算法基于dfs,在dfs的过程中,对于每个节点位置的询问做出相应的回答。dfs的过程中,当一棵子树被搜索完成之后,就把他和他的父亲合并成同一集合;在搜索当前子树节点的询问时,如果该询问的 ...
分类:
编程语言 时间:
2017-07-29 16:39:04
阅读次数:
313
求三点之间的最短路,,分别求两点之间的lca除2即可(代码写的太挫了,wa了14发= =) #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cs ...
分类:
其他好文 时间:
2017-07-28 13:25:05
阅读次数:
128
自己风格的板子 = = 考试时别把板子码错就好 = = 一、数据结构 1.树状数组单点修改区间查询(luogu3374) 2.树状数组区间修改区间查询(luogu3372) 3.线段树区间修改区间查询(luogu3373) 4.Treap(loj104) 5.Splay(loj105) 6.主席树查 ...
分类:
其他好文 时间:
2017-07-16 12:36:09
阅读次数:
285
题目描述 JOI君所居住的IOI市以一年四季都十分炎热著称。 IOI市是一个被分成纵H*横W块区域的长方形,每个区域都是建筑物、原野、墙壁之一。建筑物的区域有P个,编号为1...P。 JOI君只能进入建筑物与原野,而且每次只能走到相邻的区域中,且不能移动到市外。 JOI君因为各种各样的事情,必须在各 ...
分类:
其他好文 时间:
2017-07-05 22:04:25
阅读次数:
272
6.24结束线段树、最小生成树 P1816 忠诚 P2826 [USACO08NOV]光开关Light Switching6.25完成前一天没有完成的内容 树上倍增LCA、树的遍历、树链剖分 P3379 【模板】最近公共祖先(LCA) 6.26排序:学习及备课 计数排序插入排序选择排序冒泡排序拓扑排 ...
分类:
其他好文 时间:
2017-06-24 17:21:11
阅读次数:
136