AGC023F Manga Market题解(贪心)

本文详细解析了AGC023F Manga Market的问题,通过贪心策略对商店按特定顺序排序,并转化为01背包问题。在证明贪心策略最优性的基础上,利用状态优化将时间复杂度降低到O(nlogn+nlogT),空间复杂度为O(nlogT)。
摘要由CSDN通过智能技术生成

atcoder 传送门 & 洛谷传送门


Step 1

假设我们确定了要去哪些商店,要找完成这一方案的最小时间,那么就要确定一个最优的顺序。通常这种问题,要用一个叫 Exchange Argument 的思想确定一个贪心的标准,通过这个标准来对商店进行排序。

首先我们考虑两个商店 i i i j j j,它们在要去的顺序中是相邻的,那么考虑交换它们会对答案造成什么影响。假设在此之前已经花费了 t t t 的时间。

  • 先去 i i i 再去 j j j 花费时间: a i t + b i + 1 + a j ( t + a i t + b i + 1 ) + b j + 1 = ( a i + a j ) t + a i a j t + a j ( b i + 1 ) + b i + b j + 2 a_it+b_i+1+a_j(t+a_it+b_i+1)+b_j+1=(a_i+a_j)t+a_ia_jt+a_j(b_i+1)+b_i+b_j+2 ait+bi+1+aj(t+ait+bi+1)+bj+1=(ai+aj)t+aiajt+aj(bi+1)+bi+bj+2
  • 先去 j j j 再去 i i i 花费时间: a j t + b j + 1 + a i ( t + a j t + b j 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值