题意
按顺序给n个因子 加或乘 比如+a 或×a
可以花费代价p和m 移动两种因子到任意位置
总花费限制b
保障结果在2e9以内
思路
首先如果移动加一定移动到最前 移动乘到最后
想了一下区间dp 但是左右区间互相影响 无法消除
发现这个保证很有用 他确保了乘法因子的总大小
为1的乘法因子不必考虑 >1的乘法因子不超过30个
那么可以dfs枚举哪些乘法因子要移动
枚举时有一个很重要的剪枝 就是如果前面的×a1 枚举了不移动 那么后面的×a2 如果a2<=a1 也是必定不移动的
复杂度会降很多 只能构造2,3,5,7,11这样的乘法因子 就会位数更少
剩下的加法因子 可以用数据结构区间更新乘上前面的乘法倍数得到移动收益 再求top k收益
后来发现不用那么麻烦 把每个乘法因子前面的加法因子整合成一组 二分第k大的加法移动收益 看是否有k个刚好>=此收益的