题解
2024-09-16 16:52:30
发布于:广东
3阅读
0回复
0点赞
也算是一种可反悔贪心
如果新的函数比堆顶元素小的话就把堆顶元素弹出
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
priority_queue <int> q;
void print(){
if(q.empty()) return;
int tmp = q.top();
q.pop();
print();
cout << tmp << ' ';
}
int main(){
int n, m, x, y, z;
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> x >> y >> z;
for(int j = 1;; j++){
int tmp = x * j * j + y * j + z;
if(q.size() < m) q.push(tmp);//直接放
else if(q.top() > tmp){
q.pop();//弹出堆顶元素
q.push(tmp);
}else break;
}
}
print();
return 0;
}
这里空空如也
有帮助,赞一个