最小函数值(2085)——堆

  无甚可说。

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<queue>
 5 using namespace std;
 6 const int N=65536,INF=0x7fffffff;
 7 struct node{int a,b,c;}func[N];
 8 int calcu(int i,int x){return func[i].a*x*x+func[i].b*x+func[i].c;}
 9 struct qnode{
10     int i,x;
11     bool operator < (const qnode oth) const {return calcu(i,x)>calcu(oth.i,oth.x);}
12 };
13 
14 int n,m,cnt,res[N];
15 priority_queue<qnode> q;
16 int main(){
17     cin>>n>>m;
18     for(int i=1;i<=n;i++){
19         scanf("%d%d%d",&func[i].a,&func[i].b,&func[i].c);
20         q.push((qnode){i,1});
21     }
22     while(m--){
23         int i=q.top().i,x=q.top().x;q.pop();
24         cout<<calcu(i,x)<<" ";
25         q.push((qnode){i,x+1});
26     }
27     
28     return 0;
29 }
Method_01

  洛谷 BanG Dream! 132ms

posted @ 2017-09-10 21:27  Darkins  阅读(142)  评论(0)    收藏  举报