| 比赛 |
?板子大赛 |
评测结果 |
WWWWWWWWWW |
| 题目名称 |
最小函数值 |
最终得分 |
0 |
| 用户昵称 |
小福鑫 |
运行时间 |
1.653 s |
| 代码语言 |
C++ |
内存使用 |
8.73 MiB |
| 提交时间 |
2026-01-17 10:41:05 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,cnt[10000001],ans[10000001],z;
priority_queue<int> q;
struct e{
int a,b,c;
}p[10000001];
bool cmp(e x,e y){
if(x.a==y.a&&x.b==y.b){
return x.c<y.c;
}
if(x.a==y.a){
return x.b<y.b;
}
return x.a<y.a;
}
int main(){
freopen("minval.in","r",stdin);
freopen("minval.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>p[i].a>>p[i].b>>p[i].c;
}
sort(p+1,p+n+1,cmp);
for(int i=1;i<=n;i++){
z=i;
for(int j=1;j<=n;j++){
int w=p[j].a*i*i+p[j].b*i+p[j].c;
q.push(w);
}
if(q.size()>=m){
break;
}
}
while(q.size()>m){
q.pop();
}
cnt[z-1]=1,cnt[z]=n;
for(int i=z+1;i<=1001;i++){
if(cnt[i-2]==cnt[i-1]){
break;
}
int qq=cnt[i-2];
// cout<<i<<" "<<cnt[i-1]<<endl;
cnt[i]=cnt[i-1];
for(int j=qq;j<=cnt[i-1];j++){
int w=p[j].a*i*i+p[j].b*i+p[j].c;
if(q.top()>=w){
p[++cnt[i]].a=p[j].a,p[cnt[i]].b=p[j].b,p[cnt[i]].c=p[j].c;
q.push(w);
if(q.size()>m){
q.pop();
}
}
}
}
for(int i=1;i<=m;i++){
ans[i]=q.top();
q.pop();
}
for(int i=m;i>=1;i--){
cout<<ans[i]<<" ";
}
return 0;
}