bzoj2870
题解:
边分治入门题
当然并查集+维护直径更加简单
就是两棵树二合一直径是两颗树上的4个直径两两组合的最大值
查询路径长度你搞个差分查个lca就好了
点分治并不能做这题
分成多个联通块就gg了(点分治一般做的是有根树,然后询问跟上下顺序有关的那种)
边分治先得做的事情是把树变成二叉树
不然是可以被菊花图卡掉的
变的过程还是比较简单的
注意我们把虚点点权设为原点点权 边权设为0就可以了
void rebuild() {//重新建树
tot=;for(RI i=;i<=n;++i) h[i]=;
for(RI i=;i<=n;++i) {
int sz=a[i].size();
if(sz<=) {
for(RI j=;j<sz;++j)
add(i,a[i][j],(a[i][j]<=kn)),add(a[i][j],i,(a[i][j]<=kn));
}
else {
int o1=++n,o2=++n;v[o1]=v[o2]=v[i];
add(i,o1,),add(o1,i,),add(i,o2,),add(o2,i,);
for(RI j=;j<sz;++j)
if(j&) a[o2].push_back(a[i][j]);
else a[o1].push_back(a[i][j]);
}
}
}
今天并不是很想写明天写吧。。
bzoj2870的更多相关文章
- 【BZOJ2870】最长道路(边分治)
[BZOJ2870]最长道路(边分治) 题面 BZOJ权限题 Description H城很大,有N个路口(从1到N编号),路口之间有N-1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样 ...
- 【BZOJ2870】最长道路tree 点分治+树状数组
[BZOJ2870]最长道路tree Description H城很大,有N个路口(从1到N编号),路口之间有N-1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样.每个路口都有很多车辆来 ...
- BZOJ2870: 最长道路tree
题解: 子树分治的做法可以戳这里:http://blog.csdn.net/iamzky/article/details/41120733 可是码量... 这里介绍另一种好写又快的方法. 我们还是一颗 ...
- BZOJ2870 最长道路
题意:给定树,有点权.求一条路径使得最小点权 * 总点数最大.只需输出这个最大值.5w. 解:树上路径问题,点分治. 考虑合并两个子树的时候,答案的形式是val1 * (d1 + d2),当1是新插入 ...
- bzoj2870最长道路tree——边分治
简化版描述: 给定一棵N个点的树,求树上一条链使得链的长度乘链上所有点中的最小权值所得的积最大. 其中链长度定义为链上点的个数. 有几个不同的做法: 1.sort+并查集+树的直径.边从大到小加入 ...
- 【bzoj2870】最长道路tree 树的直径+并查集
题目描述 给定一棵N个点的树,求树上一条链使得链的长度乘链上所有点中的最小权值所得的积最大. 其中链长度定义为链上点的个数. 输入 第一行N 第二行N个数分别表示1~N的点权v[i] 接下来N-1行每 ...
- BZOJ2870—最长道路tree
最长道路tree Description H城很大,有N个路口(从1到N编号),路口之间有N-1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样.每个路口都有很多车辆来往,所以每个路口i都 ...
- BZOJ2870 最长道路tree(并查集+LCA)
题意 (n<=50000) 题解 #include<iostream> #include<cstring> #include<cstdio> #include ...
- [BZOJ2870]最长道路tree:点分治
算法一:点分治+线段树 分析 说是线段树,但是其实要写树状数组卡常. 代码 #include <bits/stdc++.h> #define rin(i,a,b) for(register ...
随机推荐
- MySQL之路 ——1、安装跳坑
最近几天准备写一个JavaWeb的简单登录,注册试下手:所谓”工欲善其事必先利其器“,然后数据库方面的话,考虑用MySQL.在安装MySQL过程中,碰到了一些问题(大同小异),记录在此,诸君共勉. 1 ...
- wtforms-表单生成及验证
介绍 wtforms是一个支持多个web框架的form组件,主要用来做表单的验证以及生成的, 安装 pip install wtforms 使用 自定义一个类,继承wtforms.Form类,定义字段 ...
- 题解-hdu2866 Special Prime
Problem hdu-2866 题意:求区间\([2,L]\)有多少素数\(p\)满足\(n^3+pn^2=m^3\),其中\(n,m\)属于任意整数 Solution 原式等价于\(n^2(p+n ...
- 关于Mac的rootless问题
由于在OS X 10.11版本添加了rootless,使得root用户在DOS命令下无法操作系统文件并提示无权限. 解决办法: 首先确认升级到最新版本 重新启动电脑,持续按住Command-R直到看见 ...
- 001_谈阿里核心业务监控平台SunFire的技术架构
<1>阿里全球运行指挥中心(GOC)的SunFire出品 <2>在2016年双11全球购物狂欢节中,天猫全天交易额1207亿元,前30分钟每秒交易峰值17.5万笔,每秒支付峰值 ...
- hibernate映射关系(多对多)
Student与Teacher关系多对多(只建了2个实体类) public class Student { private int id; private String name; private S ...
- webstorm2017.3最新激活教程(激活码、注册码)亲测成功
1 前言 webstorm2017.3最新激活教程(旧版本可用,亲测成功,有疑问随时联系),20180411测试成功,还是注册机靠谱~ 2 下载地址 链接: https://pan.baidu.com ...
- JGroups
JGroups Developer(s) Bela Ban Stable release 4.0.10.Final / February 1, 2018 Written in Java Operati ...
- hadoop环境配置
0. Hadoop源码包下载 http://mirror.bit.edu.cn/apache/hadoop/common/ 1. 集群环境 Master 172.16.11.97 Slave1 1 ...
- layui前端框架
项目中需要弹出层效果,使用了layui前端框架,主要使用了里面的弹出层特效(可以移动) html代码 要给这个标签绑定click方法 <a href='javascript:;' data-me ...