POJ 2379 ACM Rank Table(排序)
题很水,数据注意一下四点即可:
1.有些team会在一道题AC了之后还提交,这个时候只需要算第一次ac的时间以及这之前的wa,之后的全部忽略。
2.如果一道题没有ac,那么在计算时间时不应该加上它的wa带来的惩罚。
3.先按做题最多的排,如相等,再按提交时间最少的排,如相等,再按队号最小的排。
4.给的数据,提交的时间不是按顺序排的。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm> using namespace std;
const int maxn=;
int C,N;
int c,p,t,r;
int res[maxn][maxn]; //res[c][p]=1表示队伍c解决了第p题,=0则未AC。
//存储提交的信息
struct Submit{
int team,pro,time,result; //队伍号,题号,提交时间,提交结果
void init(int c,int p,int t,int r){
team=c;
pro=p;
time=t;
result=r;
}
//按提交时间从小到大排序,如果时间一样,AC的排在前面
bool operator<(const Submit tmp)const{
if(time==tmp.time)
return result>tmp.result;
return time<tmp.time;
}
}sub[maxn];
//队伍信息
struct Team{
int time,idx,wa[],num; //总时间,队伍号,各题号WA的次数,AC的题数
void init(int i,int n,int t){
idx=i;
num=n;
time=t;
memset(wa,,sizeof(wa));
}
//按AC的题数从大到小排序,如果相同则按时间从小到大排序,如果时间也相同,队伍号小的在前面
bool operator<(const Team tmp)const{
if(num==tmp.num){
if(time==tmp.time)
return idx<tmp.idx;
else
return time<tmp.time;
}
return num>tmp.num;
}
}team[maxn];
int main()
{
memset(res,,sizeof(res)); scanf("%d%d",&C,&N);
for(int i=;i<=C;i++){
team[i].init(i,,);
}
for(int i=;i<N;i++){
scanf("%d%d%d%d",&c,&p,&t,&r);
sub[i].init(c,p,t,r);
}
sort(sub,sub+N);
for(int i=;i<N;i++){
c=sub[i].team;
p=sub[i].pro;
t=sub[i].time;
r=sub[i].result;
if(r== && !res[c][p]){
team[c].wa[p]++;
}
else{
if(!res[c][p]){
team[c].time+=t;
res[c][p]=;
team[c].num++;
}
}
}
for(int i=;i<=C;i++){
for(int j=;j<=;j++){
//题目AC了,才加上相应的罚时
if(res[i][j]){
team[i].time+=team[i].wa[j]**;
}
}
}
sort(team+,team+C+);
for(int i=;i<=C;i++){
if(i==)
printf("%d",team[i].idx);
else
printf(" %d",team[i].idx);
}
return ;
}
POJ 2379 ACM Rank Table(排序)的更多相关文章
- A - ACM Rank Table
ACM contests, like the one you are participating in, are hosted by the special software. That softwa ...
- POJ - 1245 Programmer, Rank Thyself
POJ - 1245 Programmer, Rank Thyself Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d ...
- Table排序
<html> <head> <title>tablesorter表单排序插件</title> <link type ="text/css ...
- lua table排序报错与解决
lua table排序 table的sort函数 比如按照大小进行排序,下面这种写法在某些情况下可能会排序错误,甚至报invalid order function for sorting table. ...
- POJ 3436 ACM Computer Factory (网络流,最大流)
POJ 3436 ACM Computer Factory (网络流,最大流) Description As you know, all the computers used for ACM cont ...
- javascript table排序之jquery.tablesorter.js
table排序 jquery.tablesorter.js 一.Demo下载地址: 1.tablesorter.js下载地址: http://download.csdn.net/detail/zhan ...
- Poj 3436 ACM Computer Factory (最大流)
题目链接: Poj 3436 ACM Computer Factory 题目描述: n个工厂,每个工厂能把电脑s态转化为d态,每个电脑有p个部件,问整个工厂系统在每个小时内最多能加工多少台电脑? 解题 ...
- js实现table排序(jQuery下的jquery.sortElements)
项目中要实现table排序的功能. 网上有非常多解决方式,非常多都基于jQuery. jquery.tablesorter.大小17KB.只是他的首页在ie10下兼容性有点问题. DataTables ...
- [ACM] POJ 3687 Labeling Balls (拓扑排序,反向生成端)
Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10161 Accepted: 2810 D ...
随机推荐
- ie8中支持 password 的 placeholder
之前写过一篇 ie8中使用placeholder 的博客,但是,该文中的 placeholder 在 type="password" 时会出现问题,不能显示文字而是密码类型的点,所 ...
- POJ 1273(EK)
题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水第一行有两个整数N,M接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水超级模板题,一个有 ...
- <Apache服务的搭建"三件套"《目录验证》《虚拟主机》《加密证书》>
自己没事会整理一些小知识,复习原来的同时也帮助新手. vvvvvvvvvvvvv开启apache目录验证vvvvvvvvvvvvvv htpasswd -cm uers redhat //redha ...
- 编译安装HTTPD 2.4.9版本
编译安装HTTPD 2.4.9版本 服务脚本:/etc/rc.d/init.d/httpd 脚本配置文件路径:/etc/sysconfig/httpd 运行目录:/etc/httpd ...
- res/raw文件的存放和读取
通常,如果Android开发者有些文件比如音频,视频,.html,.mp3等等这些文件不希望编译器编译而保持原始原貌打包进apk文件(这在游戏开发中很常见和普遍,如游戏用到的游戏音乐.图等资源),那么 ...
- django post报403问题
第一个问题是: 我使用jquery的ajax向后台传值, 当使用GET方法时没问题 $.ajax({ type:"GET" url: data: success: }) 但是由于基 ...
- 失败经历--在windows下安装meld
缘起 在linux下,最早用的比较工具是vim,这是作为一个vimer的自尊(其实没有关系吧).终于有一天,在比较同一个项目的两个版本的时候,比较了两三个文件后,看着vim里面花花绿绿的颜色,实在是受 ...
- Microsoft Azure Powershell 获取Azure-Location
首先要切换至AzureResourceManager模式下 http://www.cnblogs.com/SignalTips/p/4110790.html 国际版Get-AzureLocation ...
- awk中文手册
1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l awk 适于解决哪些问题 ? l awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...
- git,repo学习
Repo:就是一组git命令的集合,repo init 下载一个分支. repo start 文件名 --all本地传建的另一个代码分支,用于备份作用. 比如:repo start zhao --al ...