题解报告:hdu 2093 考试排名
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2093

若每次错误提交的罚分为20分,则其排名从高到低应该是这样的:
#include <bits/stdc++.h>
#define MAXN 10001
using namespace std;
struct node
{
char name[];//用户名
int ac;//ac的题目数量
int time;//总共花的时间
}stu[MAXN];//参加比赛的人数
bool cmp(node x,node y)//结构体排序规则
{
if(x.ac!=y.ac)return x.ac>y.ac;//先按ac的题量从大到小排
else if(x.time!=y.time)return x.time<y.time;//再按时间从小到大排
else return strcmp(x.name,y.name)<;//最后是按字典序排名
}
int main()
{
int n,m,t=;//n为考试题数,m为单位罚分数,t表示参赛人员的序号标记
char ch[];//输入每个题的得分情况
cin>>n>>m;
getchar(); //吃掉回车符
while(cin>>stu[t].name){//不断输入参赛人员的比赛信息
stu[t].ac=stu[t].time=;//同时初始化为0,下面进行计算
for(int i=;i<n;i++){ //循环读个n个题目的比赛情况
cin>>ch;
if((ch[]=='-')||(strcmp(ch,"")==))continue;//等于负数或为0,说明没有AC,直接进行下一个输入
stu[t].ac++;//AC了就先计数,接下来算AC这道题所用的时间
int j,tmp=;
for(j=;j<(int)strlen(ch)&&ch[j]!='(';j++)
tmp=tmp*+ch[j]-'';//先计算左括号旁边的数字
stu[t].time+=tmp;//先加解题所用的时间
tmp=;
if(j<(int)strlen(ch)){
for(int k=j+;k<(int)strlen(ch)-;k++) //计算括号内的数
tmp=tmp*+ch[k]-'';
}
stu[t].time+=tmp*m;//加上(之前错误提交次数乘上罚时总用时)
}
t++;//计数参赛人数
}
sort(stu,stu+t,cmp); //按规则排序
for(int i=;i<t;i++) // 输出排名信息
printf("%-10s %2d %4d\n",stu[i].name,stu[i].ac,stu[i].time);//按格式输出
return ;
}
题解报告:hdu 2093 考试排名的更多相关文章
- HDU——2093考试排名(string类及其函数的运用以及istringstream)
考试排名 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)
Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...
- hdu 2093 成绩排名
思路: 没啥思路,就是定义结构体,跟题目,走,当时没想到对那个括号的处理,后面看了题解,才知道用个getchar直接判断 算是一个值得思考的点. 代码: #include<bits/stdc++ ...
- 题解报告:hdu 1398 Square Coins(母函数或dp)
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
- 题解报告:hdu 2069 Coin Change(暴力orDP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...
- 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)
Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...
- cojs 强连通图计数1-2 题解报告
OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一 ...
随机推荐
- 运维平台之CMDB系统建设
CMDB是运维的基础核心系统,所有的元数据和共享数据管理源,类似于业务中的账号平台的作用.本篇文章,我将从概念篇.模型篇.到实现与实施篇具体的进行阐述. CMDB也称配置管理,配置管理一直被认为是 I ...
- java File_encoding属性
今天给客户发版本号,突然发现报表导出内容为空,大小0字节.感到很奇怪,由于开发的时候都好好的,打包出来怎么会出现异常. 细看才后发现是 file_encoding这个java系统属性编码方式设置导致的 ...
- setenv LD_LIBRARY_PATH
For most Linux binaries, NCL was built using gcc and gfortran. This may cause a dependency on a file ...
- 【剑指Offer面试题】 九度OJ1517:链表中倒数第k个结点
鲁棒性是指程序可以推断输入是否符合规范要求,并对不和要求的输入予以 合理的处理. 题目链接地址: http://ac.jobdu.com/problem.php?pid=1517 题目1517:链表中 ...
- 在CentOS上把Nginx从1.2.4升级到1.6.0
在CentOS上升级把Nginx从1.2.4升级到1.6.0 摘要:本文记录了在CentOS 6.3上,把Nginx从1.2.4升级到1.6.0的过程. 1. 概述 在我做的一个项目中,最近我对生产服 ...
- Boost中的Timer的使用——计算时间流逝
使用Boost中的Timer库计算程序的运行时间 程序开发人员都会面临一个共同的问题,即写出高质量的代码完毕特定的功能.评价代码质量的一个重要标准就是算法的运行效率,也就是算法的运行时间.为了可靠的提 ...
- 导入别人的Android项目,提示 /Libs/gen already exists but is not a source folder. Convert to a source folder or rename it
解决方法: 遇到这个问题的解决方法: 1. 右键点击工程,选择 "Properties" 2. 选择左边的 "Java Build Path" 3. 打开 &q ...
- ios UIWebView 播放优酷土豆视频
将以下的代码嵌套在html里.然后webView载入这个网页.或这段html码,即可了,无须要使用像网上说的html5去兼容 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- android使用两种方式注冊receiver
1. package com.example.myreceiver; import android.os.Bundle; import android.app.Activity; import and ...
- Dancing Links 专题总结
算法详细:Dancing Links博客 1.精确覆盖: ZOJ3209 Treasure Map HUST1017 Exact cover POJ3074 Sudoku 2.可重复覆盖: HDU22 ...