牛客IOI周赛26-普及组T3
结论:每次都选 rating 最小的最优。
堆维护即可。
#include<bits stdc++.h> using namespace std; priority_queue<double,vector<double>,greater<double> >q; double sum; int n,m,l=1,r; int main(){ cin>>n>>m,r=n; for(int i=1;i<=n;i++){ double l; cin>>l; q.push(l),sum+=l; } for(int j=1;j<=m;j++){ double l,r; cin>>l; r=(l+q.top())/2; sum-=q.top()/2; sum+=l/2; q.pop(); q.push(r); printf("%.2lf\n",sum); } }
引用内容:这是rating的题解,思路是每次选最小的最优(手动模拟)。3行代码也放在了这里
#include<con>//自动AC机 #include<iostream>//链接器 int main(){int a,b;cin>>a>>b;cout<<a+b<<endl;}//链接函数