题目地址:QTREE2 - Query on a tree II
LCA学了离线与在线转RMQ方法后就去做这道题,于是想了好长时间也没想到怎么做。看了题解都是用的倍增LCA。。于是又去学了下倍增法求LCA,这才发现用倍增法做简直是水题。。。因为求路径的第k个点可以转化成求第k个父节点,然而倍增法的原理就是根据的父节点,于是这题就很容易解决了。。
求距离很好求。关键...
分类:
其他好文 时间:
2015-04-13 20:54:08
阅读次数:
202
Dividing给出n个物品的价值和数量,问是否能够平分。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #i...
分类:
其他好文 时间:
2015-04-10 20:09:17
阅读次数:
146
以1号节点为根,弄出DFS序,我们发现,对于一个询问:(rt,u),以rt为根,u节点的子树中的最小点权,我们可以根据rt,u,1这三个节点在同一条路径上的相对关系来把它转化为以1为根的在DFS序上的区间询问(中间有一种情况要在树上倍增,理解了LCA的话应该很容易写出来)。收获:对于只有换根这种改变...
分类:
其他好文 时间:
2015-04-05 21:52:32
阅读次数:
136
和BZOJ消耗站一样,先将那个询问的简图构建出来,然后就是简单的树形DP。(倍增数组开小了,然后就狂WA,自己生成的极限数据深度又没有那么高,链又奇迹般正确) 1 #include 2 #include 3 #include 4 #include 5 #define min(a,b...
分类:
其他好文 时间:
2015-04-05 20:12:30
阅读次数:
197
题解:
首先找两点之间路径可以用倍增LCA。
然后标记哪个点走过可以用并查集,均摊下来最后是线性的。
代码:
#include
#include
#include
#include
#define N 501000
#define LOGN 20
using namespace std;
struct Eli
{
int v,next;
}e[N1];
int head...
分类:
其他好文 时间:
2015-03-31 18:15:24
阅读次数:
146
1 背景 前面介绍了关于双向及启发式的搜索,它们均可以实现了效率的倍增。但是应用到长距离(例如武汉——杭州大于500公里)的搜索时,平均效率存在100ms级甚至s级的耗时,显然这样一个面对广大用户群的互联网服务引擎效率是不可接受的,那么有没有优化的方向可以实现数量级的提升? 但人类对效率与正...
分类:
编程语言 时间:
2015-03-29 17:55:58
阅读次数:
202
Nearest Common AncestorsTime Limit:1000MSMemory Limit:10000KTotal Submissions:20260Accepted:10683DescriptionA rooted tree is a well-known data structu...
分类:
其他好文 时间:
2015-03-28 13:00:00
阅读次数:
112
Cow RelaysTime Limit:1000MSMemory Limit:65536KTotal Submissions:5651Accepted:2230DescriptionFor their physical fitness program,N(2 ≤N≤ 1,000,000) cows...
分类:
其他好文 时间:
2015-03-28 11:24:59
阅读次数:
124
恩。。这题真是sxbk我们先二分答案,然后判断答案是否满足要求判断方法是二分当前段的长度一直做到底,当然我们可以用倍增这样快一点,直接随机增量就可以了然后就是卡常。。。。。然后就是卡进度QAQQQQQQQ没了 1 /*****************************************....
分类:
其他好文 时间:
2015-03-19 23:39:55
阅读次数:
250