1 条题解
-
0
思路
正系数保证每函数递增;堆归并前m项,重复函数值保留,N/M均10000。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){int n,m;cin>>n>>m;vector<long long>a(n),b(n),c(n);using Q=tuple<long long,int,int>;priority_queue<Q,vector<Q>,greater<Q>>q;for(int i=0;i<n;i++){cin>>a[i]>>b[i]>>c[i];q.push({a[i]+b[i]+c[i],i,1});}while(m--){auto z=q.top();q.pop();long long v=get<0>(z);int i=get<1>(z),x=get<2>(z)+1;cout<<v<<(m?' ':'\n');q.push({a[i]*x*x+b[i]*x+c[i],i,x});}}
- 1