【BZOJ】3091: 城市旅行 Link-Cut Tree
【题意】参考PoPoQQQ。
给定一棵树,每个点有一个点权,提供四种操作:
1.删除两点之间的连边 不存在边则无视
2.在两点之前连接一条边 两点已经联通则无视
3.在两点之间的路径上所有点的点权加上一个数 两点不连通则无视
4.询问两点之间路径上任选两点路径上的点权和的期望值
【算法】Link-Cut Tree
【题解】第四步操作相当于路径所有区间点权和/区间总数。
假设链有n个点,区间总数就是n*(n+1)/2。假设点权分别为a1~an,则:
$$ans=\sum_{i=1}^{n}a_i*i*(n-i)$$
考虑在Link-Cut Tree上维护左右信息的合并,假设左区间有n个数,右区间有m个数,则合并后左区间贡献变化:
$$\sum_{i=1}^{n}a_i*i*(n-i) \rightarrow \sum_{i=1}^{n}a_i*i*(n-i+m+1)$$
右区间从右往左编号也有此结论,所以对每个点维护lsum=Σa[i]*i,rsum和ans,转移时:
$$ans_{rt}=ans_l+ans_r+lsum_l*(sz_r+1)+rsum_r*(sz_l+1)+num_{rt}*(sz_l+1)*(sz_r+1)$$
最后考虑区间加值,lsum和rsum都是加等差数列,而ans需要加Σi*(n-i)=n(n+1)(n+2)/6,拆分两步就可以推出来了。
复杂度O(n log n)。
【BZOJ】3091: 城市旅行 Link-Cut Tree的更多相关文章
- BZOJ 3091: 城市旅行 [LCT splay 期望]
3091: 城市旅行 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1454 Solved: 483[Submit][Status][Discuss ...
- BZOJ 3091 城市旅行
Description Input Output Sample Input 4 5 1 3 2 5 1 2 1 3 2 4 4 2 4 1 2 4 2 3 4 3 1 4 1 4 1 4 Sample ...
- bzoj 3091 城市旅行(LCT+数学分析)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3091 [思路] 膜Popoqqq大爷的题解 click here [代码]是坑... ...
- BZOJ 3091: 城市旅行 lct 期望 splay
https://www.lydsy.com/JudgeOnline/problem.php?id=3091 https://blog.csdn.net/popoqqq/article/details/ ...
- bzoj 3091: 城市旅行 LCT
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=3091 题解: 首先前三个操作就是裸的LCT模板 只考虑第四个操作. 要求我们计算期望,所以我 ...
- [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree)
[BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree) 题面 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一 ...
- link cut tree 入门
鉴于最近写bzoj还有51nod都出现写不动的现象,决定学习一波厉害的算法/数据结构. link cut tree:研究popoqqq那个神ppt. bzoj1036:维护access操作就可以了. ...
- Link Cut Tree学习笔记
从这里开始 动态树问题和Link Cut Tree 一些定义 access操作 换根操作 link和cut操作 时间复杂度证明 Link Cut Tree维护链上信息 Link Cut Tree维护子 ...
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree 水题
A. Link/Cut Tree 题目连接: http://www.codeforces.com/contest/614/problem/A Description Programmer Rostis ...
- Link/cut Tree
Link/cut Tree 一棵link/cut tree是一种用以表示一个森林,一个有根树集合的数据结构.它提供以下操作: 向森林中加入一棵只有一个点的树. 将一个点及其子树从其所在的树上断开. 将 ...
随机推荐
- webgl glsl
GLSL是什么? GLSL是运行在GPU上的着色器语言 GLSL有自己的语法,跟js有些不同. GLSL是一个强类型的语言,所以在写着器语言时,必须要用强类型,强类型,强类型,强类型 GLSL是着色器 ...
- PHP与类有关的几个魔术方法
与类有关的其他魔术方法 序列化与反序列化技术 含义: 序列化: 就是将一个变量所代表的“内存”数据,转换为“字符串”形式并持久保存在硬盘上的一种做法. 反序列化: 就是将序列化之后保存在硬盘上的“字符 ...
- Vue.js 上传文件(后台使用.net)
页面部分 <div id="app"> <form id="myform"> <input type="file&quo ...
- 【ASP.NET 框架系列】您所经历的,但未必研究的那些技术
本篇文章更适合具有一定开发经验,一定功底,且对底层代码有所研究的朋友!!! 本篇文章稍微偏原理且底层,有一定难度和且比较晦涩,文章粒度稍微粗些,更细粒度的,会在后续的文章中,结合具体的Demo实 ...
- @Retention(保留) 此注解用于运行时候(反射)时候使用 如果不使用的话 在反射时候无法获取到注解的值
@Retention(保留) 此注解用于运行时候(反射)时候使用 如果不使用的话 在反射时候无法获取到注解的值
- 【开发工具IDE】解决IntelliJ IDEA 创建Maven项目速度慢的问题
方法一(推荐) 在创建Maven项目时加上 archetypeCatalog=internal 参数,如下: 方法二 在maven的VM Options加上-DarchetypeCatalog=int ...
- 洛谷 P2574 XOR的艺术
刚刚学了,线段树,一道线段树入门题试试水 下面是题面 题目描述 AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏.在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1. 拥有一个 ...
- Zookeeper(一) zookeeper基础使用
一.Zookeeper是什么 (安装的是3.4.7) ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现.它提供了简单原始的功能, ...
- bzoj3748 Kwadraty
Claris 当然是要用来%的 但是,,其他dalao,,比如JL的红太阳commonc.题解能不能稍微加几句话,蒟蒻看不懂啊. 在这里解释一下,Claris的题解.(因为我弱,想了半天才明白,所以觉 ...
- jQuery 前端实现手机验证码
html <input id="phone" type="text" name="phone"> <input id=&q ...