【题意】参考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的更多相关文章

  1. BZOJ 3091: 城市旅行 [LCT splay 期望]

    3091: 城市旅行 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1454  Solved: 483[Submit][Status][Discuss ...

  2. 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 ...

  3. bzoj 3091 城市旅行(LCT+数学分析)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3091 [思路] 膜Popoqqq大爷的题解 click here [代码]是坑... ...

  4. BZOJ 3091: 城市旅行 lct 期望 splay

    https://www.lydsy.com/JudgeOnline/problem.php?id=3091 https://blog.csdn.net/popoqqq/article/details/ ...

  5. bzoj 3091: 城市旅行 LCT

    题目: http://www.lydsy.com/JudgeOnline/problem.php?id=3091 题解: 首先前三个操作就是裸的LCT模板 只考虑第四个操作. 要求我们计算期望,所以我 ...

  6. [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree)

    [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree) 题面 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一 ...

  7. link cut tree 入门

    鉴于最近写bzoj还有51nod都出现写不动的现象,决定学习一波厉害的算法/数据结构. link cut tree:研究popoqqq那个神ppt. bzoj1036:维护access操作就可以了. ...

  8. Link Cut Tree学习笔记

    从这里开始 动态树问题和Link Cut Tree 一些定义 access操作 换根操作 link和cut操作 时间复杂度证明 Link Cut Tree维护链上信息 Link Cut Tree维护子 ...

  9. Codeforces Round #339 (Div. 2) A. Link/Cut Tree 水题

    A. Link/Cut Tree 题目连接: http://www.codeforces.com/contest/614/problem/A Description Programmer Rostis ...

  10. Link/cut Tree

    Link/cut Tree 一棵link/cut tree是一种用以表示一个森林,一个有根树集合的数据结构.它提供以下操作: 向森林中加入一棵只有一个点的树. 将一个点及其子树从其所在的树上断开. 将 ...

随机推荐

  1. IE劫持

    解析雅虎与百度流氓原理- 为什么“浏览器劫持”能够如此猖狂呢?放眼众多论坛的求助贴,我们不时可以看到诸如“我的IE被主页被改了,我用杀毒工具扫了一遍都没发现病毒,我把主页改回自己的地址,可是一重启它又 ...

  2. FTP渗透测试

    在这篇文章中,我们将学习如何在CentOS机器配置ProFTPD的服务.之后,我们将进行渗透测试,以评估FTP服务的安全性,那么我们也将学习漏洞的对策. 在CentOS Linux机器的安装和配置FT ...

  3. webgl glsl

    GLSL是什么? GLSL是运行在GPU上的着色器语言 GLSL有自己的语法,跟js有些不同. GLSL是一个强类型的语言,所以在写着器语言时,必须要用强类型,强类型,强类型,强类型 GLSL是着色器 ...

  4. ssh & sftp & MacOS

    ssh & sftp & MacOS https://www.technoduet.com/a-simple-way-to-connect-to-remote-ftp-sever-on ...

  5. unity3D 涂涂乐使用shader实现上色效果

    unity3D 涂涂乐使用shader实现上色效果 之前我博文里面发过一个简单的通过截图方式来实现的模型上色方法,但是那个方法不合适商用,因为你需要对的很准确才可以把贴图完美截取下来,只要你手抖了一下 ...

  6. 康托展开&康托逆展开 的写法

    康托展开 康托展开解决的是当前序列在全排序的名次的问题. 例如有五个数字组成的数列:1,2,3,4,5 那么1,2,3,4,5就是全排列的第0个[注意从0开始计数] 1,2,3,5,4就是第1个 1, ...

  7. 2017-2018-2 20165218 实验三《敏捷开发与XP实践》实验报告

    实验三 敏捷开发与XP实践 课程:java程序设计 姓名:赵冰雨 学号:20165218 指导教师:娄嘉鹏 实验日期:2018.4.30 实验内容.步骤与体会: (一)编码标准 //实验要求 //参考 ...

  8. sz与rz命令

    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地:   与ssh ...

  9. 【原创】【1】rich editor系列教程。前期准备,兼容

    [1]前期准备,兼容 索引目录:http://www.cnblogs.com/henryli/p/3439642.html rich editor的原理无非是启用iframe的编辑模式或者div的co ...

  10. Linux之时间相关操作20170607

    一.Linux常用时间相关函数 -asctime,ctime,getttimeofday,gmtime,localtime,mktime,settimeofday,time asctime       ...