1370:最小函数值(minval)

最小函数值

cin.tie(0);//解除cin与cout的绑定,进一步提升程序执行效率。参考详情

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
 
const int idata=10000+5;
int a[idata],b[idata],c[idata];
int n,m;
int ans;
 
int f(int node,int x){
    return a[node]*x*x+b[node]*x+c[node];
}
int main()
{
    cin.tie(0);//解除cin与cout的绑定,进一步提升程序执行效率
    ios::sync_with_stdio(false);
    cin>>n>>m;
    priority_queue<int,vector<int>,less<int> >heap;//大根堆
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i]>>c[i];
        for(int j=1;j<=m;j++){
            if(i==1){
                heap.push(f(1,j));
                continue;
            }
            if(heap.top()>(ans=f(i,j))){
                heap.pop();
                heap.push(ans);
            }else break;
        }
    }
    for(int i=1;i<=m;i++){
        a[i]=heap.top();
        heap.pop();
    }
    for(int i=m;i>=1;i--)cout<<a[i]<<" ";
    return 0;
}
posted @ 2021-09-22 18:58  Rekord  阅读(310)  评论(0编辑  收藏  举报