bzoj2117】的更多相关文章

[BZOJ2117] [2010国家集训队]Crash的旅游计划 Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Crash和陶陶所要去的城市里有$N (N > 1) $个景点,Crash用正整数\(1\)到\(N\)给景点标号.这些景点之间通过\(N − 1\)条无向道路相连,每条道路有一个长度,并且保证任意两个景点之间都有且仅有一条路径相连.现在对于一个景点\(s\),Crash和陶陶从\(s\)出发,然后访问一…
题目描述 Atm有一段时间在虐qtree的题目,于是,他满脑子都是tree,tree,tree…… 于是,一天晚上他梦到自己被关在了一个有根树中,每条路径都有边权,一个神秘的声音告诉他,每个点到其他的点有一个距离(什么是距离不用说吧),他需要对于每个点回答:从这个点出发的第k小距离是多少: 如果atm不能回答出来,那么明天4019的闹钟将不会响,4019全寝可能就迟到了,所以atm希望你帮帮他. 输入 第一行,两个正整数n,k,表示树的点数,询问的是第几小距离: 第二~n行,每行三个正整数x,y…
[BZOJ2051]A Problem For Fun/[BZOJ2117]Crash的旅游计划/[BZOJ4317]Atm的树 题目大意: 给出一个\(n(n\le10^5)\)个结点的树,每条边有一个正整数权值\(w_i(w_i\le10^4)\),定义两个结点的距离为连接这两个结点路径上边权的和.对于每个结点\(i\),它到其他\(n-1\)个结点都有一个距离,将这些距离从小到大排序,输出第\(k\)个距离. 思路: 重心剖分预处理每个重心管辖范围内从重心出发能够组成的所有距离.询问时二分…
裸点分,点分树每层维护有序表,查询二分,复杂度$O(nlog^3n)$. #include<bits/stdc++.h> #define M (u+v>>1) #define pb push_back #define FOR(i,v)\ for(int i=0;i!=v.size();++i) using namespace std; void eq2(int&x,int y){x=x<y?y:x;} const int N=1e5+5; typedef int ar…
Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Crash和陶陶所要去的城市里有N (N > 1) 个景点,Crash用正整数1到N给景点标号. 这些景点之间通过N - 1条无向道路相连,每条道路有一个长度,并且保证任意两个景点之间都有且仅有一条路径相连. 现在对于一个景点s,Crash和陶陶从s出发,然后访问一个景点序列{v0, v1, v2, … , vk}, 其中v0就是s,且vi-1和vi(0 < i ≤…
动态电分治+二分 肯定要枚举所有点对,那么我们建出点分树降低树高,然后每个点存下点分树中所有子树到这个点的距离,然后二分+lower_bound就行了. #include<bits/stdc++.h> using namespace std; ; namespace IO { ; char buf[Maxlen], *C = buf; int Len; inline void read_in() { Len = fread(C, , Maxlen, stdin); buf[Len] = '\0…