hihoCoder--1469 优化延迟(二分+优先队列)
来源:互联网 发布:淘宝直通车出价 编辑:程序博客网 时间:2024/04/26 06:10
题解
注意到SP(k)随着k增大而递减,因此可以在[1, N]区间内二分搜索k,对每一个k用优先队列计算SP(k).
时间复杂度:
#include <bits/stdc++.h>using namespace std;const int maxn = 100000 + 10;long long N, Q;int p[maxn];long long SP(int k){ priority_queue<int> pq; long long sp = 0; int cnt = 1; for(int i = 1; i <= k; ++i) pq.push(p[i]); for(int i = k + 1; i <= N; ++i){ int val = pq.top(); pq.pop(); sp += val * cnt++; pq.push(p[i]); } while(!pq.empty()){ sp += pq.top() * cnt++; pq.pop(); } return sp;}int main(){#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);#endif ios::sync_with_stdio(false); cin >> N >> Q; for(int i = 1; i <= N; ++i){ cin >> p[i]; } int l = 1, r = N, ans = -1; while(l <= r){ int k = (l + r) >> 1; if(SP(k) <= Q){ ans = k; r = k - 1; }else l = k + 1; } cout << ans << endl; return 0;}
0 0
- hihoCoder--1469 优化延迟(二分+优先队列)
- hihoCoder #1269 : 优化延迟 【二分 + 优先队列】
- HihoCoder 1269 优化延迟(二分、优先队列)
- hihocoder 136 #1269 优化延迟 二分+优先队列
- hiho 1269 优化延迟 二分 优先队列
- hihocoder1269 优化延迟(二分&优先队列)
- [Offer收割]编程练习赛1 hihocoder 1269 优化延迟 (二分+优先权队列)
- hiho一下 第136周 #1269 : 优化延迟 【二分+堆排序|优先队列】
- hihoCoder 1269 优化延迟
- hihoCoder#1269 : 优化延迟
- 【2016-北京赛区网络赛-I】枚举,贪心,优先队列,优化(导弹,hihocoder 1391)
- hihocoder #1613 : 墨水滴 bfs+优先队列
- dijstra+优先队列优化
- 优先队列优化 dijkstra
- Dijkstra(优先队列优化)
- Dijkstra优先队列优化
- uva1422 - Processor 二分+优先队列
- Processor(二分搜索,优先队列)
- PHP的错误处理
- 转载:Ubuntu14.04安装Sublime Text 3--解决无法使用搜狗中文输入法
- 严把雅思考试大关,分析出国留学学什么专业好
- Qt 出现“undefined reference to `vtable for”原因总结 补情形
- numpy.array和numpy.matrix的一点小区别
- hihoCoder--1469 优化延迟(二分+优先队列)
- java彩票源码
- shell操作
- java代码分析及分析工具
- 线性表
- 2017年读书计划
- SSH的公钥和私钥的特性
- 蓝桥杯 打印十字图
- Ubuntu 14.04下Django&MySQL环境部署