ABC258

下分/fn

电脑断网了 AB 以后的题都没交/fn

然后因为我 rating 低的离谱所以只掉了 11/kx(


  • A

    分四类讨论,小于 1010 的(前导 00 ),106010\sim60 的(21:mm),607060\sim70 的(前导 00),7010070\sim100 的(22:mm)


  • B

    暴力枚举,对每一个点八个方向跑一遍 ,Θ(n3)\Theta(n^3) 绰绰有余


  • C

    考虑将操作一转化为字符串前移,然后小于 00 的部分就加个 nn


  • D

    第二遍打的时候肯定不用再花 aia_i 的时间了

    首先,考虑什么是优的

    显然要么一路闯关闯到底,要么在一关反复打

    因为如果打下了下一关,再反复嗑前一关

    • 如果打下一关之后反而劣于嗑前一关,那就浪费了

    • 如果打下下一关后优于嗑前一关,就不会在前一关上浪费时间了

      于是求出前缀和 si=si1+ai+bis_i=s_{i-1}+a_i+b_i,维护优先队列表示目前的最小 bb,然后就求 mini=1nsi+q.top()when i\min\limits_{i=1}^ns_i+q.top()_{when\ i}

      乍一看没思路,后来很快就会了


  • E


  • F


  • G

    放过了暴力,卡了 Θ(mm)\Theta(m\sqrt m)?!

    暴力枚举三个点,用 bitset 卡常

    Θ(n3ω)\Theta(\dfrac {n^3}{\omega})

    翻了洛谷题库的模板题却过不掉/fn

    好吧,统计记得要用 .count(),要不然卡常


  • Ex