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

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. Toad for Oracle 快捷键

    F4 看表的结构 F5 执行对话框中的SQL,注意最后需要以;结尾 F7 清除当前编辑框中所有的sql F8 查看历史的sql语句 F9 执行当前行的sql F10 看菜单 Ctrl + F12 保存 ...

  2. HDU 5093 Battle ships(二分图最大匹配)

    题意:一个m行n列的图由#.*.o三种符号组成,分别代表冰山.海域.浮冰,问最多可放的炮舰数(要求满足以下条件) 1.炮舰只可放在海域处 2.两个炮舰不能放在同一行或同一列(除非中间隔着一个或多个冰山 ...

  3. App性能提升方法

    总体思路:精简请求数 1.css sprit 图像拼合,将所有可拼接的所有图像拼接为一整张图像,然后再利用css中的position定位来处理,降低图片的请求数 2.懒加载:只渲染客户端用户可见区域[ ...

  4. Headfirst设计模式的C++实现——策略模式(Strategy)

    前言 最近在学习<Headfirst设计模式>,里面的例子都是Java的.但是我对Java并不熟悉,所以试着用C++来实现书中的例子. 先来看看Duck以及子类 Duck.h #inclu ...

  5. WP开发笔记——日期时间DateTime.Now函数

    //2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...

  6. c#多层嵌套Json

    Newtonsoft.Json.Net20.dll 下载请访问http://files.cnblogs.com/hualei/Newtonsoft.Json.Net20.rar 在.net 2.0中提 ...

  7. 批处理bat命令--获取当前盘符和当前目录和上级目录

    批处理bat命令--获取当前盘符和当前目录和上级目录 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试 以下例子是命令行编译Visual S ...

  8. 使用awstats分析iis站点的日志

    环境:win7 + iis7 + perl(ActivePerl-5.20.1.2000) + awstats 7.3 一.找到iis日志所在目录 建议全部都打勾 二.安装perl AWStats是p ...

  9. [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(一)

    内容较多,开篇作为说明和目录. 实验环境规划:服务器:IBM x3500 m3三台其中两台用作HA,另外一台安装VMware ESXi安装两个虚机做Stream Replication.NAS存储IP ...

  10. CentOS 7.0安装MPlayer

    自带的播放器不管rmvb还是mp4都不能播放,也搜索不到解码器. CentOS7epel装不上所以也没有rpmfusion,所以决定自己编译mplayer 首先是要获取源代码. 首先是主程序的源代码. ...