`
piperzero
  • 浏览: 3556013 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

题目1007:奥运排序问题

 
阅读更多

 

题目1007:奥运排序问题

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:3180

解决:669

题目描述:

按要求,给国家进行排名。

输入:
有多组数据。
第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。
第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。
接下来一行给出M个国家号。
输出:
排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例
对每个国家给出最佳排名排名方式 和 最终排名
格式为: 排名:排名方式
如果有相同的最终排名,则输出排名方式最小的那种排名,对于排名方式,金牌总数 < 奖牌总数 < 金牌人口比例 < 奖牌人口比例
如果有并列排名的情况,即如果出现金牌总数为 100,90,90,80.则排名为1,2,2,4.
每组数据后加一个空行。
样例输入:
4 4
4 8 1
6 6 2
4 8 2
2 12 4
0 1 2 3
4 2
8 10 1
8 11 2
8 12 3
8 13 4
0 3
样例输出:
1:3
1:1
2:1
1:2

1:1
1:1

来源:
2010年浙江大学计算机及软件工程研究生机试真题

 

 

 

/********************************* 
*   日期:2013-3-3
*   作者:SJF0115 
*   题号: 九度OJ 题目1007:奥运排序问题
*   来源:http://ac.jobdu.com/problem.php?pid=1007
*   结果:AC 
*   来源:2011年浙江大学计算机及软件工程研究生机试真题
*   总结: 
**********************************/ 
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>

//结构体
typedef struct Country{
	int GoldNum;//金牌数
	int MedalNum;//奖牌数
	int PeopleNum;//人口数
	double GoldRatio;//金牌比例
	double MedalRatio;//奖牌比例
	int SKind;//最佳排名类型
	int BestRank;//最佳排名
	int Rank;//当前排名
}Country;

Country country[1000];

int main () {
    int N,M,i,j,ID; 
	Country countrySort[1001];
    while(scanf("%d %d",&N,&M) != EOF){	
		//给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。
		for(i = 0;i < N;i++){
			scanf("%d %d %d",&country[i].GoldNum,&country[i].MedalNum,&country[i].PeopleNum);
			country[i].GoldRatio = country[i].GoldNum * 1.0 / country[i].PeopleNum;
			country[i].MedalRatio = country[i].MedalNum * 1.0 / country[i].PeopleNum;
		}
		//给出要排序的M个国家号。
		for(i = 0;i < M;i++){	
			scanf("%d",&ID);
			countrySort[i] = country[ID];
		}
		for(i = 0;i < M;i++){
			//金牌数排序
			countrySort[i].Rank = 1;
			for(j = 0;j < M;j++){
				if(countrySort[i].GoldNum < countrySort[j].GoldNum){
					countrySort[i].Rank++;
				}
			}
			countrySort[i].BestRank = countrySort[i].Rank;
			//printf("J:%d\n",countrySort[i].BestRank);
			countrySort[i].SKind = 1;
			//奖牌数排序
			countrySort[i].Rank = 1;
			for(j = 0;j < N;j++){
				if(countrySort[i].MedalNum < countrySort[j].MedalNum){
					countrySort[i].Rank++;
				}
			}
			if(countrySort[i].Rank < countrySort[i].BestRank){
				countrySort[i].BestRank = countrySort[i].Rank;
				countrySort[i].SKind = 2;
			}
			//printf("J2:%d\n",countrySort[i].Rank);
			//金牌人口比例排序
			countrySort[i].Rank = 1;
			for(j = 0;j < N;j++){
				if(countrySort[i].GoldRatio < countrySort[j].GoldRatio){
					countrySort[i].Rank++;
				}
			}
			if(countrySort[i].Rank < countrySort[i].BestRank){
				countrySort[i].BestRank = countrySort[i].Rank;
				countrySort[i].SKind = 3;
			}
			//printf("J3:%d\n",countrySort[i].Rank);
			//奖牌人口比例排序
			countrySort[i].Rank = 1;
			for(j = 0;j < N;j++){
				if(countrySort[i].MedalRatio < countrySort[j].MedalRatio){
					countrySort[i].Rank++;
				}
			}
			if(countrySort[i].Rank < countrySort[i].BestRank){
				countrySort[i].BestRank = countrySort[i].Rank;
				countrySort[i].SKind = 4;
			}
			//printf("J4:%d\n",countrySort[i].Rank);
			//输出
			printf("%d:%d\n",countrySort[i].BestRank,countrySort[i].SKind);
		}
		//每组数据后加一个空行。
		printf("\n");
    }//while
    return 0;
}



分享到:
评论

相关推荐

    07奥运奖牌计数.rar

    这个问题可能涉及到数据处理、排序算法以及奥林匹克运动会奖牌统计的逻辑。在编程竞赛平台OpenJudge上,这样的题目通常要求参赛者编写程序来接收各国在奥运会上获得的奖牌数量,然后计算并输出奖牌榜。 【描述】...

    六年级上册英语北京版期末测试.pdf

    7. 常识:奥林匹克运动会的发展历史:测试中有问题询问现代奥林匹克运动会首次举办的时间和地点,学生应该知道现代奥运会始于1896年,地点是希腊的雅典。 8. 常识:奥运火种的传递与起源:奥运会火种来源于古希腊,...

    历年数学建模赛题题目.doc数学建模

    3. **调度与排序**:足球排名次问题、天车与冶炼炉作业调度问题、公交车调度问题等,要求参赛者设计有效的调度算法,确保效率和公平性。 4. **决策与风险管理**:投资的收益和风险问题涉及到如何在不确定环境中做出...

    中宇联面试题.doc

    **问题:** 实现冒泡排序算法。 **解答:** 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也...

    无领导小组讨论案例题目及答案分析汇编.pdf

    5.运动员,女,23 岁,奥运金牌获得者;6.经理人,35 岁,擅长管理,曾将一大型企业扭亏为盈;7.小学校长,53 岁,男,劳动模范,五一奖章获得者;8.中学教师,女,47 岁,桃李满天下,教学经验丰富。请将这八名游客...

    无领导小组讨论案例题目及答案分析..pdf

    5.运动员,女, 23 岁,奥运金牌获得者;6.经理人, 35 岁,擅长管理,曾将一大型企业扭亏为盈;7.小学校长, 53 岁,男,劳动模范,五一奖章获得者;8.中学教师,女,47 岁,桃李满天下,教学经验丰富。请将这八名...

    各类无领导小组面试题目及解答技巧.pdf

    在给定的案例中,面试题目是关于海难求生的排序问题,要求将八名各有特色的游客按照救援优先级进行排列。这个问题旨在测试面试者的逻辑思维、价值判断和快速决策能力。八名游客分别是将军、外科医生、大学生、大学...

    历年数学建模赛题题目.doc

    #### 二十六、奥运会临时超市网点设计问题 - **背景**:大型活动期间,商业服务设施的合理布局。 - **关键点**: - 顾客流量预测。 - 网点选址模型。 - 营销策略制定。 #### 二十七、电力市场的输电阻塞管理问题...

    usaco2006 mar.zip

    3. "slides.zip":可能涉及到滑梯或物理运动的问题,需要选手利用计算机模拟物理现象,计算最佳路径或最短时间。 4. "skilift.zip":滑雪缆车主题,可能需要处理时间调度、乘客分配等算法问题。 5. "tselect.zip":...

    USACO.rar_usaco

    6. **模拟**:针对一些实际问题进行精确的程序模拟,如物理运动、化学反应等。 7. **优化与调试技巧**:如何优化代码以满足时间或空间限制,以及如何利用调试工具找出并修复错误。 在这个压缩包里,每个子文件很...

    河南省2016中考语文第二部分积累与运用专题六句子的衔接与排序中招命题规律总结与预测

    在河南省2016年的中考语文考试中,第二部分积累与运用的专题六重点考察了“句子的衔接与排序”这一知识点。这个部分是中招考试中的常见题型,旨在测试学生的语言组织能力和逻辑思维能力。通过对2007年至2015年历年...

    七年级语文排序题专项训练参考.pdf

    如“圣火”的传递,不仅让世界各地了解北京奥运,更弘扬了和平与友谊的奥运理念。 9. 选句填空题需要考虑句子与上下文的风格和内容一致性,如将文学比作“姹紫嫣红的百花园”强调其丰富多彩,“回味无穷的香茗”则...

    信奥+数学+物理等资料集-B(2021.07.18).rar

    1. **算法基础**:如排序(快速排序、归并排序、堆排序等)、搜索(深度优先搜索、广度优先搜索)、图论(最短路径算法、最小生成树)等。 2. **数据结构**:数组、链表、栈、队列、树、图、哈希表等,理解和运用...

    日喀则2019年事业编招聘考试真题及答案解析最全版.docx

    - 题目2是一个事件顺序排序问题,涉及解决问题的一般步骤,即发现问题、调查研究、提出解决方案、研究方案并最后实施。 2. **决策分析**: - 题目3探讨了辍学与成功之间的关系,这需要考生评估因果关系,并可能...

    东源事业编招聘2016年考试真题及答案解析版.docx

    1. 逻辑推理:题目1是一个排序题,考察逻辑关系和事件发生的先后顺序,这在逻辑推理和判断能力测试中常见。 2. 科普知识:题目2询问的是航天飞机的名称,这属于科技历史或航空航天知识。 3. 法律法规:题目3涉及民事...

    利通事业编招聘2016年考试真题及答案解析版.docx

    - 题目3涉及句子排序,测试逻辑思维和语境理解,需要考生掌握如何根据上下文关系正确排序句子。 2. **经济学与国际贸易**: - 题目2讨论了我国对外贸易的发展历程和政策变化,涉及到外贸工作原则、体制改革、市场...

    昂昂溪事业编招聘2016年考试真题及答案解析网友整理版(1).docx

    15. 题目十五是句子排序题。根据时间顺序和逻辑关系,合理的顺序应该是先发现现象(③),然后提出疑惑(②),接着解释原因(⑤),再说明不符合常理的结果(④),最后是基于此理论的结论(①)。 这些题目涵盖了...

    电子科大matlab与数值分析第一次上机实践报告范文.docx

    其次,第二道题目要求绘制奥运五环图案,用户可以自定义环的直径。这个问题的重点在于处理不同半径的圆、颜色管理以及保持图形的对齐。解答中利用了`plot`函数画圆,`holdon`命令保留已有图形,以及`aequal`命令确保...

    安徽事业编招聘2018年考试真题及答案解析最全版.docx

    题目介绍了现代奥林匹克运动会的起源和发展,特别是国际奥委会的成立及其法律地位。这道题目可能出现在公共基础知识部分,测试考生对世界历史和体育知识的了解。 4. 生物知识题: 题目4涉及生物中的“收获蚁”行为...

Global site tag (gtag.js) - Google Analytics