UOJ839. 龙门题字

首先把初始的 a 也看成一个操作。

考虑所有满足 li=1 的操作,找到 xi,1 最大的操作中 ri 最小的操作 p,对所有操作进行如下修改:

  • 如果 rirp,那么把 i 删去。
  • 否则,将 xi 的前缀替换成 xp,称其为将 i 染色。

这样所有 li=1xi,1 都相同,于是我们可以把第一位删去,进入新的子问题。容易证明原问题中首位最大的所有方案都可以对应到新问题上的一个方案。

直接暴力模拟可以得到一个 O(L2) 的做法,考虑优化。注意到如果某个操作的首位是之前被染过色的,那么它一定不会成为上文中的操作 p,因为将它染色的操作一定比它更优。所以首位被染过色的操作一定不会成为答案,自然地,其首位的具体值也不重要,我们只需要维护一个操作被染色部分的右端点 coli。考虑 coli 什么时候变化,注意到若 rp>coli 的时候,操作 i 一定被染色,所以每次将 colirpmax 即可。

https://uoj.ac/submission/679817

posted @   yllcm  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示