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

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. JS事件冒泡与捕获

    1事件传播——冒泡与捕获 默认情况下,事件使用冒泡事件流,不使用捕获事件流.然而,在Firefox和Safari里,你可以显式的指定使用捕获事件流,方法是在注册事件时传入useCapture参数,将这 ...

  2. 在线生成ICO图标、站标

    网上一搜有很多,找了两个比较好用的,分别是http://ico.storyren.com/和http://www.ico.la/,前面的那个好像更好点.上传png.jpg.或gif格式的图片,按自己需 ...

  3. Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.

    Error: An App ID with identifier "*****" is not avaliable. Please enter a different string ...

  4. 设置textview背景色为透明

    UITextView *textView=[[UITextView alloc]initWithFrame:CGRectMake(20, 40, 150, 170)];//初始化并设置大小 textV ...

  5. 如何设置fedora默认从命令行启动?

    Sumary:因为在fedora中没有/etc/initab文件我们不方便从这里设置它的runlevel target,但是linux又给我们提供了一个强悍的工具systemd,我们可以用system ...

  6. 初步了解SequoiaDB数据库

    随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,IT部门需要将越来越多的信息提供给用户,同时在现今的全球经济背景环境下,IT部 门还需要在提供高效服务的同时,降低其设备与程序维护成本 ...

  7. 对图片进行各种样式裁对图片进行各种样式裁剪:圆形、星形、心形、花瓣形等剪:圆形、星形、心形、花瓣形等--第三方开源--CustomShapeImageView

    CustomShapeImageView在github上的项目主页是:https://github.com/MostafaGazar/CustomShapeImageView 如果仅仅是需要获取圆形. ...

  8. execute连接 类型

    set rs=server.createobject("adodb.recordset") sql="select top 10 id,name from tablena ...

  9. Django Form的学习

    django.forms 是Django处理form的库      本质上可以直接通过对HttpRequest达到同样的效果,但是django.from带来更便捷的处理方式.功能有几点 通过form类 ...

  10. wpf MVVM ViewModel 关闭View显示

    上次说到了不同wpf窗体之间的交互,这个在MVVM模式之中用起来会方便很多 下面我来说下在ViewModel中关闭View的方法,其实也很简单的,注释照样不写,一看就懂的 public partial ...