abc289g题解
2024-10-22 04:49:49
考虑枚举卖出的物品个数\(i\),把\(b_i\)从大到小排序。
题目的某人会买物品的条件转化为\(b_i\geq p_j-c_j\),这说明卖出的物品的集合是排序后\(b\)的一段前缀,且卖出\(i\)个物品,\(p_j\)的最大值是\(b_i+c_j\)
所以该情况的价值是\(i*b_i+i*c_j\),令\(i*b_i=d_i\)
对于每个\(i\),我们要求\(d_i+i*c_j\)的最大值。这相当于若干条直线\(y=d_i+x*c_j\),要求\(x=i\)的最大值,使用半平面交维护即可。
最新文章
- scrapy爬虫docker部署
- JAVA基础培训(isoft)
- Jmeter报告优化之New XSL stylesheet
- adb permission denied
- Android星星评分控件RatingBar的使用
- Android SDK Manager更新不了的解决办法
- cocos2dx中的菜单项CCMenuItem及其五个子类的使用
- javascript eval和JSON之间的关系
- [Swift]LeetCode1033. 移动石子直到连续 | Moving Stones Until Consecutive
- 从零学习Fluter(七):Flutter打包apk详解
- 10元买啤酒问题Java解法
- [Python设计模式] 第20章 挨个买票——迭代器模式
- 第三个Sprint冲刺第六天(燃尽图)
- c++11 线程
- quartz延迟执行一次
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误几种解决方案
- IO之间的比较
- day3之文件操作
- PyCharm配置SFTP远程调试Django应用
- windows上安装db2 spatial extender和ArcSDE的问题