ACM比赛排名与罚时计算问题
样例:
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
struct sub{ 声明结构体 //
int ci,pi,ti,ri; //队号,题数,罚时,ac
}s[1100];
struct team{ // 声明结构体
int id; //队号
int num; // 题数
int tal_time; //罚时
int times[30]; //提交次数
int ac[30]; //是否ac
}t[1100];
bool cmp1(sub a,sub b){ // 按照罚时升序排列
return a.ti<b.ti;
}
bool cmp2(team a,team b){ //如果数量不相等按照题数降序排列
if(a.num!=b.num)
return a.num>b.num;
if(a.tal_time!=b.tal_time) //如果罚时不相等,按照罚时升序排列。
return a.tal_time<b.tal_time;
return a.id<b.id; //按照队伍id排序升序
}
int main() //主函数
{
int c,n;
int i,j;
while(scanf("%d%d",&c,&n)!=EOF){
for(i=1;i<=c;++i){ //将id num等初始化为零
t[i].id=i;
t[i].tal_time=0;
t[i].num=0;
memset(t[i].times,0,sizeof(t[i].times)); memset函数用来将数组初始化为零
memset(t[i].ac,0,sizeof(t[i].ac));
}
for(i=0;i<n;++i){!
scanf("%d%d%d%d",&s[i].ci,&s[i].pi,&s[i].ti,&s[i].ri); //输入变量
}
sort(s,s+n,cmp1); //按照cmp1调用快排
for(i=0;i<n;++i){
if(!(t[s[i].ci].ac[s[i].pi])){ 如果t[s[i].ci].ac[s[i].pi]!=1
if(!s[i].ri){ 如果s[i].ri!=1;
t[s[i].ci].times[s[i].pi]++; 提交次数+1;
}else{
t[s[i].ci].tal_time+=s[i].ti+t[s[i].ci].times[s[i].pi]*20*60; 计算罚时的总时间
t[s[i].ci].ac[s[i].pi]=1; 通过ac
t[s[i].ci].num++; 做出来的题数+1;
}
}
}
sort(t+1,t+c+1,cmp2); 调用cmp2快排
for(i=1;i<=c;++i){
if(i!=1)
printf(" ");
printf("%d",t[i].id); 输出结果。
}
printf("\n");
}
return 0;
}
总结“:
关于一些问题的处理.计算罚时数。如果一道题ac了过后,再提交一个错误的代码不计罚时.如果队伍存在排名相等的,则按照队伍号的升序排列.需注意的就是罚时的计算.
ACM比赛排名与罚时计算问题相关推荐
- C语言oj罚时计算,罚时计算器(字符处理,结构,指针数组).c
//目前还存在许多bug 题目描述 一般 ACM程序设计比赛都是五个小时.但是比赛结束时,DB(DataBase)发现总罚时很大,DB就想知道这总罚时算得对不对.但由于DB数学不是很好,想让你写个程序 ...
- 【总结】ACM比赛生涯总结
程序设计竞赛相关奖项总结 时间 比赛 奖励 大一下学期 2017.5 西安交通大学ACM校赛 铜奖 大二下学期 2018.5 ICPC全国邀请赛-西安站 铜奖 2018.6 ICPC全国邀请赛-宁夏站 ...
- ACM 比赛 训练记录(持续更新)
队伍 : 西安电子科技大学 voyage 成员 后户冯神flukehn 核弹少女zzs 可爱小⑨bzy 2019 CCPC Final(VP on 9.17) 第一次与队友进行 ACM 赛制的训练,结 ...
- 【转】ACM比赛经验
参考网址:http://www.cnblogs.com/zhaoguanqin/archive/2011/08/24/2151758.html [转]ACM比赛经验 ACM比赛经验: 推荐此篇文章打印 ...
- #问题求解与编程# 实验二 D 比赛排名预测
比赛排名预测 发布时间: 2018年3月27日 09:17 最后更新: 2018年3月29日 20:13 时间限制: 1000ms 内存限制: 128M 描述 听说ACM爱好者协会即将举办 ...
- 福利来了!国内TOP3的超级云计算,免费领2000核时计算资源!
长久以来,超级计算机一直是各国竞相角逐的科技制高点,也是国家综合科技实力的体现,尤其是近几年,中国和美国在超算领域的竞争已经进入"白热化".2020年,我国超级计算机在<全球 ...
- 第一次参加学校的ACM比赛所学及感想
第一次写博客!还很不熟练嘻嘻,不过很开心自己有想写下来的东西,以后会一直坚持写的? 高考报志愿的时候不知道自己抽了什么疯,选择了计算机专业,有一部分原因是因为之前看了微微一笑很倾城?觉得女生搞IT很帅 ...
- 科研福利!国内TOP3的超算中心,免费领2000核时计算资源
长久以来,超级计算机一直是各国竞相角逐的科技制高点,也是国家综合科技实力的体现,尤其是近几年,中国和美国在超算领域的竞争已经进入"白热化".2020年,我国超级计算机在<全球 ...
- “玲珑杯”ACM比赛 Round #21-C-战舰萝莉(线段树区间更新)
"玲珑杯"ACM比赛 Round #21 Start Time:2017-09-23 17:00:00 End Time:2017-09-23 19:30:00 Refresh T ...
最新文章
- 读书:历史 -- 奥斯曼帝国六百年
- Nginx之rewrite使用
- centos ntfs-3g 安装和使用
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
- mysql集群session_Jetty9.2.2集群Session共享
- 这样理解PWM,想不懂都难!
- 三分钟撸完前后端crypto-js加解密,你学废了吗?
- java连接数据库的配置文件
- 再谈几种语言的运行速度比较:看第三方比较结论!
- npm 编译慢_如何有效提升快应用(Webpack)编译速度
- python画图x轴时间间隔_matplotlib绘图-设置横坐标为日期显示范围与间隔
- 剑指 offer set 8 树的子结构
- 熵权法求权重的Matlab实现
- JAVA小乌龟游泳_描写乌龟游泳的作文
- java中jdk1.8的hashmap为啥要用尾插法,不用头插入。
- 华硕无双+2022款笔记本重装系统笔记
- 黑苹果之联想Y430P亮度记忆功能
- html5是什么语言,html5 css3是什么?
- ORA-01940: cannot drop a user that is currently connected 问题解决
- Golang lua交互——gopher-lua中call函数使用
热门文章
- 【Java|golang】2299. 强密码检验器 II
- 山东自然人电子税务局(扣缴端)_为什么我登录自然人电子税务局没有单位办税这个按钮?...
- python中ord什么意思_python里ord
- 全国大学生软件测试大赛【嵌入式测试个人赛】【练习题分析】
- 使用Oauth2.0实现微博授权登录
- 第一次写博客+学习学习markdown
- python scrapy爬虫防止ip被封的实现方案
- RobotStudio5.14版本破解
- 战歌竞技场服务器维护中,《战歌竞技场》4月13日开启终极测试
- 浙江工业大学计算机复试经验