标签:20 删除 染色 枚举 mathcal 颜色 rightarrow 贪心
tyy 模拟赛 T2,打了 20 分暴力滚粗。
题目内容
.md 文件不在手边,明天再放上来。
解题思路
如果像我一样按题意模拟:枚举染色方案 \(\rightarrow\) 构造序列 \(a\rightarrow\) 比较字典序,那只能得 20 分了。实际上,所谓 \((t_i,i)\) 从大到小排序,就是让多的尽量多,少的尽量少。
初步的贪心是枚举颜色,把能涂成这种颜色的区间全涂掉,剩下的给其它颜色,看起来是 \(\mathcal{O(C^2)}\) 的。正解在此基础上开一个大根的可删除堆,把颜色和其最大长度打包扔进去;然后每次取堆顶,直接输出,枚举每一个这种颜色的区间(之前肯定顺手记录了吧),把它两边的颜色从堆里“删出来”,改一下长度(被当前颜色覆盖了一部分),再放回去。
用两个优先队列、一个 set (或者丧心病狂手写一棵平衡树、一个手写可删除堆都能做到 \(\mathcal{O((c+m)\log(c+m))}\) 的优秀复杂度。
AC 代码
同样不在手边,明天放上。(补充了两个优先队列实现可删除堆的内容)
THE END
标签:20,删除,染色,枚举,mathcal,颜色,rightarrow,贪心 来源: https://www.cnblogs.com/q0000000/p/15559111.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。