最小函数值(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 }
洛谷 BanG Dream! 132ms

浙公网安备 33010602011771号