CPOJ 2018.10.19提高测试 垃圾机器人 (litter)
考虑对每一条路径差分,以此计算每个点ii在每轮中第kk个捡的贡献:
costi,k=(1+4)ai          (k=1)costi,k=((k+1)2k2)ai=(2k+1)ai          (k>1) cost_{i,k}=(1+4)a_i\;\;\;\;\;(k=1)\\ cost_{i,k}=((k+1)^2-k^2)a_i=(2k+1)a_i\;\;\;\;\;(k>1)
所以一个点在这一轮中越早捡贡献越少
所以枚举捡了tt轮,最远的nt+1nn-t+1\sim n个垃圾在这轮中第一个捡,以此类推
一开始想当然地用了dp,把一个区间里的垃圾放在同一里捡,而贪心是把一个区间里的垃圾放在每一轮的同一
Code

相关文章:

  • 2022-01-06
  • 2021-09-27
  • 2021-07-27
  • 2021-08-02
  • 2021-07-12
  • 2021-06-28
  • 2021-12-10
  • 2021-09-14
猜你喜欢
  • 2021-09-23
  • 2021-07-18
  • 2021-04-02
  • 2021-06-27
  • 2021-09-21
  • 2022-12-23
  • 2021-09-30
相关资源
相似解决方案