题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114867245056

题意:给n个国家,以及每个国家的金牌数、奖牌数、人口数(百万)。以及m个来询问的国家,现在有4中排名方式(金牌数,奖牌数、人均金牌数、人均奖牌数),对来询问的每个国家给出对其最有利的排名方式以及排名。

思路:用4次sort就行,打表存进b数组,对每次询问输出相应的结果即可,注意一个坑点,比如两个国家金牌数相等,则在金牌数排行榜中这两个国家排名相同,在这wa

了一发。详见代码:(代码看着很长,其实都是重复的部分,可以写进一个循环的,懒得改了)

 #include<bits/stdc++.h>
using namespace std; struct node{
int gd,md,ps,id;
double p3,p4;
}a[]; bool cmp1(node x,node y){
return x.gd>y.gd;
} bool cmp2(node x,node y){
return x.md>y.md;
} bool cmp3(node x,node y){
return x.p3>y.p3;
} bool cmp4(node x,node y){
return x.p4>y.p4;
} int n,m,b[][]; int main(){
scanf("%d%d",&n,&m);
for(int i=;i<n;++i){
scanf("%d%d%d",&a[i].gd,&a[i].md,&a[i].ps);
a[i].id=i;
a[i].p3=a[i].gd*1.0/(a[i].ps*1.0);
a[i].p4=a[i].md*1.0/(a[i].ps*1.0);
}
sort(a,a+n,cmp1);
b[a[].id][]=;
for(int i=;i<n;++i)
if(a[i].gd==a[i-].gd)
b[a[i].id][]=b[a[i-].id][];
else
b[a[i].id][]=i+; sort(a,a+n,cmp2);
b[a[].id][]=;
for(int i=;i<n;++i)
if(a[i].md==a[i-].md)
b[a[i].id][]=b[a[i-].id][];
else
b[a[i].id][]=i+; sort(a,a+n,cmp3);
b[a[].id][]=;
for(int i=;i<n;++i)
if(a[i].p3==a[i-].p3)
b[a[i].id][]=b[a[i-].id][];
else
b[a[i].id][]=i+; sort(a,a+n,cmp4);
b[a[].id][]=;
for(int i=;i<n;++i)
if(a[i].p4==a[i-].p4)
b[a[i].id][]=b[a[i-].id][];
else
b[a[i].id][]=i+; while(m--){
int tmp;
scanf("%d",&tmp);
int t1,t2=;
for(int i=;i<=;++i)
if(t2>b[tmp][i])
t2=b[tmp][i],t1=i;
printf("%d:%d",t2,t1);
if(m) printf(" ");
}
printf("\n");
return ;
}

pta7-18奥运排行榜(模拟)的更多相关文章

  1. PTA数据结构与算法题目集(中文) 7-40奥运排行榜 (25 分)

    PTA数据结构与算法题目集(中文)  7-40奥运排行榜 (25 分) 7-40 奥运排行榜 (25 分)   每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同.比如 ...

  2. 18/9/22NOIP模拟考

    18/9/22NOIP模拟考 其实本来是有多组数据的,出题人忘记在题面上加了   斜眼笑 期望得分:100:实际得分:100 由于种种原因,拿到题的时候已经过去了0.5h+... 然后因为这道题数据范 ...

  3. 18/9/21模拟赛-Updated

    18/9/21模拟赛 期望得分:100:实际得分:0  qwq 拿到题目第一眼,我去,这不是洛谷原题(仓鼠找Sugar)吗 又多看了几眼,嗯,对,除了是有多组数据外,就是原题 然后码码码....自以为 ...

  4. 【2018.10.18】noip模拟赛Day2 地球危机(2018年第九届蓝桥杯C/C++A组省赛 三体攻击)

    题目描述 三体人将对地球发起攻击.为了抵御攻击,地球人派出了 $A × B × C$ 艘战舰,在太 空中排成一个 $A$ 层 $B$ 行 $C$ 列的立方体.其中,第 $i$ 层第 $j$ 行第 $k ...

  5. 18.4.09 模拟考 zhx P75

    题目链接 https://files.cnblogs.com/files/lovewhy/P75.pdf P75 竞赛时间: ????年??月??日??:??-??:?? 注意事项(请务必仔细阅读) ...

  6. 18.09.22模拟赛T2 历史

    网上基本上找不到这道题,何况LJJ还稍微改了一下...... 原题:传送门 题目描述 ljj 被S 国数不清的漂亮小姐姐所吸引,为了搞清楚为什么S 国有如此多的漂亮小姐姐,他决定研究S 国的历史. 根 ...

  7. 6.18 省选模拟赛 树 倍增 LCT

    LINK:树 考虑暴力 保存每个版本的父亲 然后暴力向上跳.得分20. 考虑离线 可以离线那么就可以先把树给搞出来 然后考虑求k级祖先 可以倍增求. 如何判断合法 其实要求路径上的边的时间戳<= ...

  8. 6.18 省选模拟赛 字符串 LCT SAM

    LINK:字符串 看起来很难做 考虑一种暴力 建立SAM后每次查询暴力扫儿子. 期望得分10分.实际得分10分. 另外一种发现每次扫儿子过于暴力 可以每次儿子向上做贡献 每次都暴力向上跳. 期望得分1 ...

  9. 4.18 省选模拟赛 无聊的计算器 CRT EXBSGS EXLucas

    算是一道很毒瘤的题目 考试的时候码+调了3h才搞定. op==1 显然是快速幂. op==2 有些点可以使用BSGS 不过后面的点是EXBSGS. 这个以前学过了 考试的时候还是懵逼.(当时还是看着花 ...

随机推荐

  1. django之block extend标签

    class ExtendsNode(Node): must_be_first = True context_key = 'extends_context' def __init__(self, nod ...

  2. 【ASP.NET 插件】分享一个可视化HTML编辑器 CKEditor.NET

    因为公司网站的可视化HTML编辑器IE兼容性问题,js报错不能使用,于是在网上找到了个还行的,图片本地上传的话直接把图片拖到编辑窗口就可以了.这个编辑器是在开源中国看到的,个人觉得还不错! CKEdi ...

  3. Django 模板格式化日期

    在模板中格式化日期: {{ post.date|date:”Y-m-d H:i:s” }}

  4. PLSQLDeveloper_免安装自带client

    PLSQLDeveloper_解压版 免安装并且自带有client客户端. 要安装解压附带的readme.txt进行配置. 一. 目录结构 D:\install\PLSQL |-- instantcl ...

  5. java自定义抛出的异常Exception

    package com.zhanzhuang.exception; public class CustomizeException { public static void main(String[] ...

  6. windows7 安装虚拟机,xsheel连接不上的问题,记录一下

    安装了好久,一直连接不上...,原来是网络没开..重新安装设置就可以了!!!记录一下

  7. jquery接触初级-----juqery 动画函数

    1. window.onload(), 一次只能保存对一个函数的引用:如果多次调用,他会自动用后面的函数覆盖前面的函数 2.$(document).ready(); 会在现有行为上追加新的行为,这些函 ...

  8. layer.js 学习笔记

    了解到一个很好用的弹框插件,名字叫layer.js 前几天要在网页中改写alert函数,自己写了一个模态框,虽然效果出来了,但是点击关闭后,无法返回当前页面.请教大神时,说有一个叫layer.js的东 ...

  9. YCSB性能测试工具使用(转)

    在网上查In-Memory NoSQL性能测试的资料时,偶然间发现了这个性能测试工具YCSB,全称为“Yahoo! Cloud Serving Benchmark”.它内置了对常见NoSQL数据库和数 ...

  10. mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释

    mysql使用sql语句查询数据库所有表注释已经表字段注释(转载)   场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...