ZJOI2018 D1T2 历史(毕竟我菜,所以题解十分易懂。。)
我定睛一看,上一篇博客居然是去年省选写的。。。emmm我果然很懒。。
又是一年省选季,临死前订正一下去年的题吧。。
作为第一天30pts的滚粗选手,我去年并没有怎么思考这题。。
题意概括好麻烦,来来来我们放题目链接。。
为了方便叙述,我们用Ti表示 ∑(i在lca的子树中)ai 。
从无修改的情况的入手。我们先解决一个问题,即:如果给出一个崛起的顺序,比如样例中的4,1,5,3,2,我们要怎么计算灾难度之和。
考虑顺序为:......u.....v..... 则u,v贡献一个灾难度的条件为:u....v之间没有点在lca(u,v)的子树中。比如例子中4,1,5中的4,5贡献了一个灾难度,是因为1不在lca(4,5)=2的子树中。可以发现,如一个u,v能通过lca贡献一个灾难度,那么u,v仅有两种情况:1.u,v为lca不同儿子的后代 2.u,v中某点为lca,另一点为lca的后代。
考虑u,v十分地累。。。所以考虑每个lca,由 u,v贡献灾难度的条件 我们发现,要计算通过lca贡献1的点对个数,只需关心lca子树中各点(共 ∑(i在lca的子树中)ai 个点)的相对位置。假设我们已知这个相对位置,现在要计算哪些点可以通过lca贡献一个灾难度。由情况1,2我们知道,lca的每个儿子的子树中的点是等价的。令lca的儿子个数为s,则,我们可以将lca子树中的所有点看成一些染了色的点(共s+1种颜色,每个儿子子树一种+lca一种)。
现在,对于每个lca,我们得到了(s+1)中颜色的点的排列。那么,通过lca贡献的1的点对个数 等价于这个排列上 相邻且不同色的点对u,v 的个数。(Q:为什么一定要相邻?A:如果不相邻,那么u,v之间出现的点一定会把u和v的所有公共路径覆盖掉,此时两点无法贡献答案。)
好,现在我们已经得到了一种已知崛起顺序的计算方法,我们来考虑让灾难度之和最大。容(mei)易(you)发现,上述计算方法有一个很不错的性质,即不管每个lca子树里怎么安排它的颜色序列,这些颜色序列都能组成整个方案。并且,每个序列可以直接对答案有独立贡献。这就很棒,不带修改的情况直接转换为一个相对简单的问题:
有c种颜色的点,颜色为i的点有Ti个。求出所有点的排列中 相邻异色点对个数 的最大值。
这个最大值的上界显然是 Ti-1 。我们考虑构造一种排列。现在我们有 Ti个空格子。我们将{ai}从大到小排序。先取出a1个颜色为1的点来填。为尽量不浪费,我们隔一格填1个1。填完之后,我们把填好的格子看作被删掉,有了一条的连续空格子,于是我们可以取出a2个颜色为2的点,重复上述过程。(举个
ZJOI2018 D1T2 历史(毕竟我菜,所以题解十分易懂。。)的更多相关文章
- 「ZJOI2018」历史(LCT)
「ZJOI2018」历史(LCT) \(ZJOI\) 也就数据结构可做了-- 题意:给定每个点 \(access\) 次数,使轻重链切换次数最大,带修改. \(30pts:\) 挺好想的.发现切换次数 ...
- 「ZJOI2018」历史
「ZJOI2018」历史 前置知识 \(\text{LCT}\) 维护子树信息,考虑辅助树上一个节点的子树信息只是其代表的这一段链的信息,设 \(S(u)\) 为节点 \(u\) 的子树信息,那么在辅 ...
- 题解 「ZJOI2018」历史
题目传送门 Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰 ...
- 【刷题】UOJ #374 【ZJOI2018】历史
九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰好 \(n-1\) 条双向道路联通, ...
- UOJ#374. 【ZJOI2018】历史 贪心,LCT
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ374.html 题解 想出正解有点小激动. 不过因为傻逼错误调到自闭.不如贺题 首先我们考虑如何 $O(n ...
- LOJ #2434. 「ZJOI2018」历史(LCT)
题意 click here 题解 我们首先考虑答案是个什么样的东西, 不难 发现每个点可以单独计算它的贡献. 令每个点 \(i\) 崛起次数为 \(a_i\) . 假设一个点子树的 \(\sum a_ ...
- @loj - 2434@ 「ZJOI2018」历史
目录 @description@ @solution@ @accepted code@ @details@ @description@ 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的 ...
- 「珍贵历史资料鉴赏」CF786B 题解
写在前面 偶然翻到一篇 2019-08-07 18:58 写的未发布的题解. 给大家找点乐子玩. 正文 知识点:线段树优化建图 线段树优化建图 用于解决 类似 从 x 向区间[L,R]的 区间连边问题 ...
- LOJ2434. 「ZJOI2018」历史 [LCT]
LOJ 思路 第一眼看似乎没有什么思路,试着套个DP上去:设\(dp_x\)表示只考虑\(x\)子树,能得到的最大答案. 合并的时候发现只有\(x\)这个点有可能做出新的贡献,而做出新贡献的时候必然是 ...
随机推荐
- 【转载】 [unreal4入门系列之七] UE4中的Actor类和Pawn类
原文地址: http://www.52vr.com/article-558-1.html 现在我们开始进入UE4的代码开发工作.首先,UE4的类框架是非常庞大的,看起来有点让人措手不及.不过正因为UE ...
- JavaScript 进阶
字符串方法 ① charAt() 方法可返回指定位置的字符 ② indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置 ③ split() 方法将字符串分割为字符串数组,并返回此数组 ...
- 等积投影(equal-area projection)
等积投影(equal-area projection)是地图投影的一种,是地图上任何图形面积经主比例尺放大以后与实地上相应图形面积保持大小不变的一类投影.即投影面积与实地面积相等的投影——面积比为1. ...
- Django知识总结(一)
壹 ● 有关http协议 一 ● 全称 超文本传输协议(HyperText Transfer Protocol) 二 ● 协议 双方遵循的规范 http协议是属于应用层的协议(还有ftp, smtp等 ...
- Hive中数据加载失败:root:supergroup:drwxr-xr-x
Hive中数据加载失败:inode=:root:supergroup:drwxr-xr-x 在执行hive,数据加载的时候,遇到了一个错误,如下图: 在执行程序的过程中,遇到权限问题很正常,背后原理也 ...
- 机器学习 xgboost 笔记
一.数据预处理.特征工程 类别变量 labelencoder就够了,使用onehotencoder反而会降低性能.其他处理方式还有均值编码(对于存在大量分类的特征,通过监督学习,生成数值变量).转换处 ...
- ShellExecute, WinExec与CreateProcess
0x01 ShellExecute ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. 函数原型: Shel ...
- 介绍一下Spring Cloud简介
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调导致了样板模式, 使用Spring Clo ...
- mysql事件调用存储过程总结
第一次写事件调用存储过程,在网上找了一些资料,特此做下总结,巩固一下: 事件调用存储过程主要有三种: (1)创建事件马上执行,调用存储过程 CREATE EVENT if not exists Eve ...
- js设置按钮的灰色不可点击
document.getElementById("btnSave").setAttribute("disabled", true);//设置不可点击 docum ...