奥运排序问题

复制大佬的,只是为了方便下次找到。
作者:天天坚持学习
链接:https://www.nowcoder.com/discuss/353150180096679936
来源:牛客网
/*对评论区大佬肆年的代码的改进,思想就是肆年的思想,没有什么不同。原代码是有问题的,只是测试用例测试不出来。原代码只适用于n=m的情况。当n!=m时,正常情况下输出结果是错误的,只不过唯一的n!=m的输入用例的输出结果也是正确的*/

#include <bits std=""> c++.h> </bits>

using namespace std;

int main()
{
    int n,m;
    while(cin>>n>>m)
    {
        int nat[n][3];      //存储金牌,奖牌,人口
        for(int i=0;i<n;i++)
        {
            cin>>nat[i][0]>>nat[i][1]>>nat[i][2];
        }
        float obj[n][4];    //存储金牌,奖牌,金牌人口比,奖牌人口比
        for(int i=0;i<n;i++)
        {
            obj[i][0]=nat[i][0];
            obj[i][1]=nat[i][1];
            obj[i][2]=nat[i][0]?obj[i][0]/nat[i][2]:0;   //这里有小问题,比如 4 7 0和 5 8 0,当有很多NAN时,这个找不出来真实的排名
            obj[i][3]=nat[i][1]?obj[i][1]/nat[i][2]:0;
        }
        int ranking[n][4];    //记录所有国家的排名情况,输出时+1
        for(int i=0;i<n;i++)
            for(int j=0;j<4;j++)
                ranking[i][j]=0;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                for(int x=0;x<4;x++)
                    if(obj[j][x]>obj[i][x])
                        ranking[i][x]++;
        for(int i=0;i<m;i++)    //输出要求的m个国家的排名
        {
            int temp;           //存储要输出的国家号
            cin>>temp;
            int mi=0;
            for(int j=1;j<4;j++)
                if(ranking[temp][j]<ranking[temp][mi])
                    mi=j;
            printf("%d:%d\n",ranking[temp][mi]+1,mi+1);
        }
        cout<<endl;
    }

全部评论
楼主厉害啊
点赞 回复 分享
发布于 2022-10-13 23:07 山西

相关推荐

瑞雪兆丰年_:可以贴个超级大的校徽,以防HR眼拙
点赞 评论 收藏
分享
08-28 11:37
已编辑
华东师范大学 Java
Sigma777:本来想说师弟怎么把我这个老东西卷没了,仔细一看是师兄 简历不错,但是得准备好选型话术,比如我举个例子你为什么要用caffeine,一般我们的小项目不会有这么hot的key需要本地缓存,你要说明你是如何发现有这么hot的key连redis都兜不住的,引入后优化了多少时间,然后还有本地缓存大小设置为多少,这个大小能保证热点key不会因为太小而淘汰也不会因为太大影响服务吗,为什么不用guava,引入本地缓存同步问题怎么解决。 然后分库分表,为什么你觉得要分表,数据量多少,分多少张表几个库,分片键选择依据,你的所有查询能不能准确定位到某一张避免全库扫描,有没有数据倾斜问题就是分的每张表数据量差距特别大,你是一开始分库分表还是后期发现瓶颈才分,如果后期才分你如何把旧表的数据搬过去同时还能确保业务正常运行。 然后是消息队列,你说缓存高并发请求,却选择了吞吐量较小的rabbit,有什么原因吗,为什么不选Kafka。 然后你说分布式锁解决集群环境并发安全,也就是说你是集群部署的,请问是怎么部署的,docker还是k8s,部署几台,配置是多少,jvm参数设置是多少,有监控吗,线上遇到故障吗,怎么解决的,有做负载均衡吗,数据是怎么压测的等等。 zset缓存本月实时排行数据具体怎么做的,会有大key问题吗。 其他本小渣暂时想不到了,留给其他大神点评
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务