标签:颜色 队列 线段 分治 合并 BJOI2017 边数 维护
没时间码 先口胡。
明显有一个n^2的暴力。可以拿到20分。
链的情况也非常容易 一个简单的单调队列 就可以解决 当然可以暴力的采用线段树。
这样可以拿到40分。
对于60分 直接考虑线段树合并 利用线段树维护每种颜色的最大值 由于不考虑边数问题。
对于80分 由于总颜色很少 考虑每个点处开颜色个数颗线段树维护深度。
利用线段树合并再每个颜色单独做 复杂度大概两个log的样子 可以过80
不过以上均为口胡没有实现。
考虑100分 容易发现线段树合并失效了 至少需要线段树套线段树才能同时维护边数和颜色。
考虑上点分治来维护边数这个限制。
对于一个重心x 我们将所有的链抽出来进行两条链之间的合并。
分为两种同颜色的合并 不同颜色的合并。发现同时做非常难以处理。
但是我们调换顺序将同颜色的放一块处理 处理时使用单调队列维护即可。
复杂度 nlogn 代码咕咕咕。
标签:颜色,队列,线段,分治,合并,BJOI2017,边数,维护 来源: https://www.cnblogs.com/chdy/p/16641361.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。