*hdu5499

来源:互联网 发布:良心单机手游 知乎 编辑:程序博客网 时间:2024/06/05 00:40

大哭大哭

题目连接:点击打开链接

题解:代码运行正确,就是提交一直错误,大家帮忙来找茬


出题人的题解:

直接按照题意计算出最后每名选手的最终得分,接着按最终得分排序。

先找出来一个得分最高的女生,然后找出其余的选手中得分最高的m-1m1个人,把所有进入省队的选手再按分数重新排一下序,最后输出即可。

其实此题就是题目长了一点,处理起来麻烦了一点,其他都还好

正如上述所说,我们得先求出每个选手的最终得分

首先,我们得先分别找到两场比赛Round1、Round2最高的原始得分Max1、Max2,每位选手最终得分的公式为

0.3*r1*(300/Max1)+0.7*r2*(300/Max2)

求出所有选手的最终得分之后排序处理就可以了

如果有女生参加,m个人中就需至少包括得分最高的女生,否则输出得分最高的前m个人



代码:

#include <iostream>#include <cstring>#include <cmath>#include <cstdio>#include <algorithm>using namespace std;struct people{    char sex[10];    char name[20];    double r1,r2,num;};struct people p[100];int cmp(people q,people w){    return q.num<w.num;}int main(){    int t,n,m,ans,k;    int nan,nv;    double sum1,sum2;    cin>>t;    while(t--)    {        sum1=-1;        sum2=-1;        ans=0;        cin>>n>>m;        for(int i=1;i<=n;i++)        {            cin>>p[i].name>>p[i].sex>>p[i].r1>>p[i].r2;            if(strcmp(p[i].sex,"male")==0)                nan++;            else                nv++;            sum1=max(p[i].r1,sum1);            sum2=max(p[i].r2,sum2);        }        for(int i=1;i<=n;i++)        {            p[i].num=p[i].r1*(300.0/sum1)*0.3+p[i].r2*(300.0/sum2)*0.7;        }        sort(p+1,p+1+n,cmp);        for(int i=n;i>=n-m+1;i--)        {            if(strcmp(p[i].sex,"female")==0)            {                ans++;                break;            }        }        if(ans==1||nv==0)        {            printf("The member list of Shandong team is as follows:\n");            for(int i=n,j=1;j<=m;j++,i--)            {                cout<<p[i].name<<endl;            }            continue;        }        for(int i=n;i>=1;i--)        {            if(strcmp(p[i].sex,"female")==0)            {                k=i;                break;            }        }        printf("The member list of Shandong team is as follows:\n");        for(int i=n;i>=n-m+2;i--)        {             cout<<p[i].name<<endl;        }        cout<<p[k].name<<endl;    }    return 0;}






0 0
原创粉丝点击