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 ...
最新文章
- [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二
- 无意中发现了一位清华大佬的代码模版
- Kafka工作原理简要概述
- HDU 5536 Chip Factory 字典树+贪心
- 将Sublime Text3添加到右键菜单中
- tomcat(10)安全性
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
- 前端学习(496):noscript元素
- ORACLE JDBC 对千万数据 批量删除和批量插入
- app测试的过程和重点关注内容
- 基于multisim14的函数信号发生器仿真
- html5 css3时间特效,炫酷纯CSS3响应式垂直时间轴特效
- 【JavaWeb】实现网页验证码
- if-else练习:交换值
- cv2 给图片加框框
- HackPwn:TCL智能洗衣机破解细节分析
- Tableau弧线图
- 这个弹丸小国,靠移民收割不少国人
- python进行数据预处理(最大最小值规范化、零均值规范化、剔除奇异值、去噪、曲线拟合)
- Word2019 如何快速统一图片大小,将其他图片设置为参照图片大小
热门文章
- Eclipse 3.4(ganymede木卫三)昨天正式发布
- 固体火箭推进剂理论(二)
- mysql 列分区_mysql8 参考手册-列表列分区
- 一张数据可视化大屏看懂2022卡塔尔世界杯
- 卫星定位技术(概述)
- 使用OpenGL开发一个指南针 (http://www.hiapk.com/thread-513153-1-1.html)
- “STO 链改出海抱团取暖”,TokenSky香港站12月17日召开
- python爬取和平精英皮肤_20行Python代码爬取王者荣耀全英雄皮肤
- 电力电子技术笔记-三相半波可控整流电路
- 用户走进计算机世界,走进计算机世界说课稿.doc