关于完全背包可达性的一个优化
  • 板块学术版
  • 楼主CrTsIr400
  • 当前回复11
  • 已保存回复11
  • 发布时间2020/9/30 15:26
  • 上次更新2023/11/5 12:23:19
查看原帖
关于完全背包可达性的一个优化
121995
CrTsIr400楼主2020/9/30 15:26

给你 nn 个硬币,每个硬币面额 aia_i ,有无限个,求能否拼成 qq 组询问的面值 kik_i

这道题直接 O(nm)(m=maxi=1nki)O(nm)(m=\max^{n} _{i=1} k_i) 完全背包过即可。

方程:fj=fjorfjaif_j=f_j \,\,or \,\,\,\,f_{j-a_i}

但是,蒟蒻有个小优化,时间复杂度会小于等于 O(nm) 的。

对于每个元素 aia_i,在 aa 数组中筛除它的倍数,显然,这样可以剪掉无用决策。

而最优可以达到 O(m)O(m),即有一个1.

最差还是 O(nm)O(nm) ,即 aa 数组两两互质。

求这个优化平均复杂度是多少?能快多少?

2020/9/30 15:26
加载中...