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
BZOJ3551
Bzoj3551
:[ONTAK2010]Peaks加强版:Kruskal+主席树
题目链接:[ONTAK2010]Peaks加强版做一遍Kruscal,对于要合并联通块的两个点x,y新建节点z令fa[x]=fa[y]=z,并且节点z的权值为这条边的边权那么我们对于一个询问只需要倍增出最后一个权值>x的节点,这颗子树就是我们要找到的联通块主席树维护即可#include#include#include#includeusingnamespacestd;constintmaxn=30
TheWolfWhistlingSong
·
2020-09-16 18:14
OI
可持久化线段树
生成树
BZOJ3551
Peaks 加强版 【kruskal重构树】【主席树】
题目链接:http://darkbzoj.tk/problem/3551题解:对原图求一遍kruskal重构树,考虑在重构树上倍增,求出深度最小的点权≤k\lek≤k的点(显然不是原图上的点),然后只需要求子树第k大,这显然可以主席树解决代码://byBalloons#include#include#include#include#definemprmake_pair#definedebug()p
DenyTian
·
2020-08-11 17:07
【解题报告】
====并查集&差分
====主席树
【
BZOJ3551
】Peaks加强版(Kruskal重构树,主席树)
题面BZOJDescription在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。Input第一行三个数N,M,Q。第二行N个数,第i个数为h_i接下来M行,每行3个数abc,表示从a
小蒟蒻yyb
·
2020-07-01 03:36
BZOJ
2018.09.30
bzoj3551
:Peaks加强版(dfs序+主席树+倍增+kruskal重构树)
传送门一道考察比较全面的题。这道题又用到了熟悉的kruskal+倍增来查找询问区间的方法。查到询问的子树之后就可以用dfs序+主席树统计答案了。代码:#include#defineN200005#defineM500005usingnamespacestd;inlineintread(){intans=0;charch=getchar();while(!isdigit(ch))ch=getchar
SC.ldxcaicai
·
2018-09-30 14:04
#
主席树
#
kruskal
#
倍增
#
dfs序
【BZOJ3545】【
BZOJ3551
】【ONTAK2010】Peaks(Kruskal重构树,倍增,主席树)
BZOJ3551
强制在线。SolutionKruskal重构树。考虑Kruskal的加边过程,将边从小到大加入的同
Hany01
·
2018-07-20 22:34
BZOJ
Kruskal重构树
倍增
主席树
bzoj3551
[ONTAK2010]Peaks加强版(kruskal重构树+dfs序+主席树+树上倍增)
题意同bzoj3545,只不过强制在线了。那强制在线了怎么搞呢x,有一个神奇的东西,kruskal重构树,张这个样子:传送门。他有很多优美的性质:首先,他一定是一颗二叉树,然后所有叶子节点一定是原图中的点,从叶子节点往跟走,点权一定是单调不降的。如果原图中有n个点,则这棵树一定有n+n-1个点(因为你需要合并n-1次,也就新建了n-1个点)。然后对于这道题而言,你可以从v开始在树上倍增找到第一个小
Icefox_zhx
·
2017-12-04 19:04
-----树-------
bzoj
最小生成树
树上倍增
主席树
【
BZOJ3551
】Peaks加强版,主席树+kruskal重构+dfs序+倍增思想
传送门写在前面:一道调了不止一上午的题目思路:我们先来看一下神奇的kruskal重构树图中红色的是原图的边权,黑色的是原图上的点这样生成的树有一些十分优美的性质:1.二叉树(好吧这题意义不大)2.原树与新树两点间路径上边权(点权)的最大值相等3.子节点的边权小于等于父亲节点(大根堆)4.原树中两点之间路径上边权的最大值等于新树上两点的LCA的点权这些神奇的性质可以解决一些图上的连通性问题。对于这道
xym_CSDN
·
2016-05-05 22:00
bzoj3551
Peaks加强版 最小生成树&主席树
我们如果首先求出了最小生成树,那么在询问的时候去掉所有边权>x的边,那么剩下的和v相连的就是可以走到的山峰。 那么考虑在并查集的时候做一点科(shou)技(jiao),比如现在要合并u和v所在的连通块,边权为t,那么显然u中所有点到v中所有点的路径中的最大边权为t,那么新建一个点p,连p->u和p->v且p的点权为t。那么n-1合并之后得到了一颗有n的叶子节点的树,那么两个点x->y
lych_cys
·
2016-03-30 13:00
最小生成树
线段树
DFS
并查集
主席树
【ONTAK2010】【
BZOJ3551
】Peaks加强版
Description【题目描述】同3545Input第一行三个数N,M,Q。第二行N个数,第i个数为h_i接下来M行,每行3个数abc,表示从a到b有一条困难值为c的双向路径。接下来Q行,每行三个数vxk,表示一组询问。v=vxorlastans,x=xxorlastans,k=kxorlastans。如果lastans=-1则不变。Output同3545SampleInputSampleOut
CreationAugust
·
2016-02-27 19:00
dfs序
主席树
倍增
BZOJ3551
: [ONTAK2010]Peaks加强版
首先强制在线的话,肯定是不能再离线排序+平衡树启发式合并了。 这回要用的是线段树合并,每次把两棵线段树合并,总复杂度为$O(n\log n)$ 预处理: 把边按权值从小到大排序,依次加边, 对于边(x,y),权值为z,如果x和y已经在一个联通块里就无视掉 假设x块大小小于等于y块大小 将x,y两块的线段树合并,设合并后线段树根为r,并在y所在块根节点处root表后面加入一个(r,z)
·
2015-10-31 11:51
ZOJ
上一页
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
其他