E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ1832
【题解】【
BZOJ1832
】聚会(LCA)
DescriptionY岛风景美丽宜人,气候温和,物产丰富。Y岛上有N个城市,有N-1条城市间的道路连接着它们。每一条道路都连接某两个城市。幸运的是,小可可通过这些道路可以走遍Y岛的所有城市。神奇的是,乘车经过每条道路所需要的费用都是一样的。小可可,小卡卡和小YY经常想聚会,每次聚会,他们都会选择一个城市,使得3个人到达这个城市的总费用最小。由于他们计划中还会有很多次聚会,每次都选择一个地点是很烦
Zbw_OIer
·
2020-09-14 06:34
树上
LCA
算法
BZOJ1832
: [AHOI2008]聚会(LCA)
题目:1832:[AHOI2008]聚会解析:偶尔做做水题挺爽的两两之间先求出LCA,发现至少有两个LCA是相同的,这个重复LCA也是深度最浅的那个,那我们就选择那个不重复的LCA,因为若选这个重复的LCA的话,这个重复的LCA到另一个LCA的路径会走两遍,反之只会走一遍三点间的距离就是\(dis[x]+dis[y]+dis[z]-dis[LCA(x,y)]-dis[LCA(x,z)]-dis[L
dengjiao4915
·
2020-08-18 14:09
BZOJ1832
: [AHOI2008]聚会(LCA)
题目:1832:[AHOI2008]聚会解析:偶尔做做水题挺爽的两两之间先求出LCA,发现至少有两个LCA是相同的,这个重复LCA也是深度最浅的那个,那我们就选择那个不重复的LCA,因为若选这个重复的LCA的话,这个重复的LCA到另一个LCA的路径会走两遍,反之只会走一遍三点间的距离就是\(dis[x]+dis[y]+dis[z]-dis[LCA(x,y)]-dis[LCA(x,z)]-dis[L
Chrety
·
2019-08-19 19:00
【
BZOJ1832
】【AHOI2008】聚会 &【BZOJ1787】Meet 紧急集合
Description给出一颗树,求点X使点x,y,z到它的距离最短,并求出来。Solution先把x,y,z的两两LCA求出来,可以证明一定至少会有两个LCA使一样的,而X点就是与其他两个不同的那个,于是就可以乱搞一波,(本来想偷懒,结果WA了…QAQ)复杂度:O(m∗log2(n))Code#include #include #definefo(i,a,b)for(inti=a;i'9'));
HOWARLI
·
2016-07-04 19:00
图论
LCA
【LCA】
BZOJ1832
& BZOJ1787(AHOI)-集会
【题目大意】一个图有n个点n-1条边(也就是说是一棵树),求其中三点共同到达某一点经过总共的最少边数以及共同到达的那一点。【思路】借用一下黄学长给的结论:三个点两两取LCA,其中必有两个相同,则另外一个点就是答案。注意BZOJ大数据要用scanf和printf,因为cout的原因RE了好几次_(:зゝ∠)_基本算是一道标程类的题目了啦。1#include 2#include 3#include
GufuVelvirki
·
2016-01-17 22:00
[BZOJ1787][Ahoi2008]Meet 紧急集合&&[
BZOJ1832
][AHOI2008]聚会
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1787http://www.lydsy.com/JudgeOnline/problem.php?id=1832题目大意给定一棵树,每次询问3个点到某一点的最小距离和题解3个点,其实任意两点间有lca,而且最多有3个不同lca(事实上最多是2个),这样的话3种情况比大小即可事实是:3个点两两lca
slongle_amazing
·
2015-11-27 20:00
【
bzoj1832
】 AHOI2008聚会 lca
不错的题,就是找lca呗。因为三个点,所以一定在三个点连接的树枝上,那么先两个求个lca,第三个再走到这里就可以了。#include #include #include #include #include #include #definemaxn500010 usingnamespacestd; intnext[2*maxn],to[2*maxn],head[maxn],dep[maxn],f
u012288458
·
2015-09-25 10:00
【BZOJ1787】【Ahoi2008】Meet 紧急集合 LCA、双倍经验
intmain() { puts("转载请注明出处谢谢"); puts("http://blog.csdn.net/vmurder/article/details/43235305"); }233……【
BZOJ1832
Vmurder
·
2015-01-28 19:00
LCA
meet
BZOJ1787
Ahoi2008
紧急集合
【
BZOJ1832
】【AHOI2008】聚会 倍增lca
这道题写不了tarjanlca。50W的询问,也就是150W次lca查询,每次加三条边,内存妥妥要爆。只能退求logn的倍增lca了。sadstory.还好一遍AC。题解:就是发现每次询问三个点之间有唯一的路径集,那么我们选其中两个取lca,然后另一个点自己走到这个lca,就可以贪心取得答案。代码:#include #include #include #include #defineN501000
Vmurder
·
2015-01-11 09:00
LCA
聚会
BZOJ1832
Ahoi2008
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他