2017 ecfinal b题

来源:互联网 发布:网络舆论利大于弊一辩 编辑:程序博客网 时间:2024/04/29 10:41


要好好学英语啊,不然题目都读不懂啊。

code:

#include<stdio.h>#include<algorithm>using namespace std;#include<queue>using namespace std;struct node{    int ge;    double zhi;    double ans;    bool operator <(const node&  a)const    {        if(ans!=a.ans)        {            return a.ans>ans;        }    }} a[300000];priority_queue<node>N;int main(){    int  t;    scanf("%d",&t);    int cas=1;    while(t--)    {        int n,m;        scanf("%d%d",&n,&m);        double sum=0;        int mm=m;        for(int i=0; i<n; i++)        {            scanf("%lf",&a[i].zhi);            sum+=a[i].zhi;            a[i].ge=1;            m--;            a[i].ans=(a[i].zhi/a[i].ge)*(a[i].zhi/a[i].ge)*a[i].ge-(a[i].zhi/(a[i].ge+1))*(a[i].zhi/(a[i].ge+1))*(a[i].ge+1);            N.push(a[i]);        }        sum/=mm;        while(m)        {            node aa=N.top();            N.pop();            aa.ge++;            m--;            aa.ans=(aa.zhi/aa.ge)*(aa.zhi/aa.ge)*aa.ge-(aa.zhi/(aa.ge+1))*(aa.zhi/(aa.ge+1))*(aa.ge+1);            N.push(aa);        }        double anss=0;        while(!N.empty())        {            node aa=N.top();            N.pop();            anss+=(aa.zhi/aa.ge-sum)*(aa.zhi/aa.ge-sum)*aa.ge;        }        printf("Case #%d: %.12f",cas++,anss/mm);    }}/*313 61 2 35 105 6 7 8 96 61 1 4 5 1 4*/

代码还不知道是否可以ac,待测。

原创粉丝点击