题很水,数据注意一下四点即可:

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(排序)的更多相关文章

  1. A - ACM Rank Table

    ACM contests, like the one you are participating in, are hosted by the special software. That softwa ...

  2. POJ - 1245 Programmer, Rank Thyself

    POJ - 1245 Programmer, Rank Thyself Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d  ...

  3. Table排序

    <html> <head> <title>tablesorter表单排序插件</title> <link type ="text/css ...

  4. lua table排序报错与解决

    lua table排序 table的sort函数 比如按照大小进行排序,下面这种写法在某些情况下可能会排序错误,甚至报invalid order function for sorting table. ...

  5. POJ 3436 ACM Computer Factory (网络流,最大流)

    POJ 3436 ACM Computer Factory (网络流,最大流) Description As you know, all the computers used for ACM cont ...

  6. javascript table排序之jquery.tablesorter.js

    table排序 jquery.tablesorter.js 一.Demo下载地址: 1.tablesorter.js下载地址: http://download.csdn.net/detail/zhan ...

  7. Poj 3436 ACM Computer Factory (最大流)

    题目链接: Poj 3436 ACM Computer Factory 题目描述: n个工厂,每个工厂能把电脑s态转化为d态,每个电脑有p个部件,问整个工厂系统在每个小时内最多能加工多少台电脑? 解题 ...

  8. js实现table排序(jQuery下的jquery.sortElements)

    项目中要实现table排序的功能. 网上有非常多解决方式,非常多都基于jQuery. jquery.tablesorter.大小17KB.只是他的首页在ie10下兼容性有点问题. DataTables ...

  9. [ACM] POJ 3687 Labeling Balls (拓扑排序,反向生成端)

    Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10161   Accepted: 2810 D ...

随机推荐

  1. SQL server基本操作(一)

      --1.create database CREATE DATABASE MyDB GO --2.use database USE MyDB GO --3.create table CREATE T ...

  2. DataGrid3

    a标签,DataGrid的数据绑定 1.function aa(id, url) {            //alert(id);            window.open(url + '&am ...

  3. 内核 current宏解析

    Technorati 标签: current thread_info      在内核中,可以通过current宏来获得当前执行进程的task_struct指针.现在来简要分析以下:      最原始 ...

  4. mycat1.5~1.6的一个bug

    以下语句在mysql单库中执行正常: SELECT * FROM device WHERE devicetype='AMS.Monitoring.XlCloud.QKL8154.XLCloudDevi ...

  5. 《用户和组的管理》Redhat6.3

    linux下有三类用户:  1.超级用户 :root 具有操作系通的一切权限 uid 0 2.普通用户:普通用户具有操作系统有限的权限 uid 500-6000 3.伪用户 :是为了方便系统管理,满足 ...

  6. VMWare 不能识别SD卡

    打开service

  7. jQuery对input中radio的一些操作

    通过jQuery获取页面中的所有radio对象,遍历页面中的radio,取消选中的标签,因为使用到jQuery时间,因此引用到了网上公共的js,这只是本人的一些总结,大神勿喷. <html> ...

  8. 【Qt】Qt环境搭建(Qt Creator)【转】

    简述 上一节中介绍了如何进行Qt和Visual Studio的下载安装,随后演示了如何将Qt集成到Visual Studio中,并完成了我们第一个Qt小程序-Hello World.下面主要讲解如何利 ...

  9. CodeIgniter(CI 3.0)分页类实践记录

    最近在学习B/S,选择了PHP CI框架作为切入点. 在尝试制作个人CMS的时候遇到了需要分页的情况,网上好像搜不到3.0版本以上的例子,下面附上本地实验的代码,供参考. 数据库情况如下: 首先看Co ...

  10. Berkeley DB

    最近用BDB写点东西,写了挺多个测试工程.列下表,也理清楚最近的思路 1.测试BDB程序,包括打开增加记录,查询记录,获取所有记录.将数据转存mysql 程序的不足,增加记录仅仅只有key和value ...