我定睛一看,上一篇博客居然是去年省选写的。。。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 历史(毕竟我菜,所以题解十分易懂。。)的更多相关文章

  1. 「ZJOI2018」历史(LCT)

    「ZJOI2018」历史(LCT) \(ZJOI\) 也就数据结构可做了-- 题意:给定每个点 \(access\) 次数,使轻重链切换次数最大,带修改. \(30pts:\) 挺好想的.发现切换次数 ...

  2. 「ZJOI2018」历史

    「ZJOI2018」历史 前置知识 \(\text{LCT}\) 维护子树信息,考虑辅助树上一个节点的子树信息只是其代表的这一段链的信息,设 \(S(u)\) 为节点 \(u\) 的子树信息,那么在辅 ...

  3. 题解 「ZJOI2018」历史

    题目传送门 Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰 ...

  4. 【刷题】UOJ #374 【ZJOI2018】历史

    九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰好 \(n-1\) 条双向道路联通, ...

  5. UOJ#374. 【ZJOI2018】历史 贪心,LCT

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ374.html 题解 想出正解有点小激动. 不过因为傻逼错误调到自闭.不如贺题 首先我们考虑如何 $O(n ...

  6. LOJ #2434. 「ZJOI2018」历史(LCT)

    题意 click here 题解 我们首先考虑答案是个什么样的东西, 不难 发现每个点可以单独计算它的贡献. 令每个点 \(i\) 崛起次数为 \(a_i\) . 假设一个点子树的 \(\sum a_ ...

  7. @loj - 2434@ 「ZJOI2018」历史

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的 ...

  8. 「珍贵历史资料鉴赏」CF786B 题解

    写在前面 偶然翻到一篇 2019-08-07 18:58 写的未发布的题解. 给大家找点乐子玩. 正文 知识点:线段树优化建图 线段树优化建图 用于解决 类似 从 x 向区间[L,R]的 区间连边问题 ...

  9. LOJ2434. 「ZJOI2018」历史 [LCT]

    LOJ 思路 第一眼看似乎没有什么思路,试着套个DP上去:设\(dp_x\)表示只考虑\(x\)子树,能得到的最大答案. 合并的时候发现只有\(x\)这个点有可能做出新的贡献,而做出新贡献的时候必然是 ...

随机推荐

  1. windows端运行.sh脚本

    在复现lightheadrcnn时,碰到这么一句    bash make.sh 下载cygwin安装 在cygwin安装过程中,在选择安装包的时候找到Devel 再在Devel里面找到make,勾选 ...

  2. 详解Python的作用域和命名空间

    最近在学习Python,不得不说,Python真的是一门很好用的语言.但是学习的过程中关于变量作用域(scope)的命名空间(namespace)的问题真的把我给搞懵了.在查阅了相关资料之后,觉得自己 ...

  3. # -*- coding: utf-8 -*-

    -- coding: utf-8 -- import scrapy from jobscrawler_qianchengwuyou.items import JobscrawlerQianchengw ...

  4. Android 访问地址

    private String url_data = "https://api.douban.com/v2/movie/top250?start=0&count=10"; 免 ...

  5. 基本矩张量与strike.dip.rake的对应

    basefp1=[ ]; M(,:)=[ ]; basefp2=[ -];M(,:)=[ - ]; basefp3=[ ];M(,:)=[ ]; basefp4=[ -];M(,:)=[ ]; bas ...

  6. vue-resource 和 axios的区别

    vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的 ...

  7. PHP安装过程中问题详解

    安装Apace时我就犯了一个大错误.因为我的母语是JAVA,我以为Tomcat就是Apache.其实不然,Tomcat是给Java用的,处理JSP等的动态页面. 而PHP则是单纯的用Apache安装A ...

  8. JS-斜杠和反斜杠的转换

    例子:var url = "http://localhost:64177/Home/AccordionIndex"; 将斜杠转换成反斜杠: url = url .replace(& ...

  9. 使用Pillow库 创建简单验证码

    使用Pillow生成简单的验证码 本想做成字体各自按随机角度倾斜, 但没有在Pillow中找到相关的方法 import randomfrom PIL import Image, ImageDraw, ...

  10. SpringBoot中的ajax跨域问题

    在控制类加入注释@CrossOrigin(allowCredentials = "true",allowedHeaders = "*",origins = {& ...