Time Limit: 1 second

Memory Limit: 64 MB

【问题描述】

F1的影响力越来越大,因此国际汽联决定扩大规模,让更多有天赋的车手加入这一行列。

不过规模的扩大带来了一系列问题,比如排名系统。由于参赛人数过多,排名系统要运行很久才能够得出结果。

车迷们非常愤怒,强烈要求修改系统。于是,汽联召开紧急会议,决定在短期内重新编写该系统。

F1排名的标准是:每场比赛的前八名可获得积分,从第一名到第八名分别获得:10,8,6,5,4,3,2,1个积分,车手总积分

是该车手各场比赛获得的积分之和。每场比赛过后,排名系统都会将当前的车手总积分从大到小排序,若积分相等则编号小的车

手排在前面。

你的任务就是要编写这一系统。不过车迷们常常只关注第一名,因此,你只需在每场比赛过后输出排名第一的车手的编号即可。

【输入格式】

输入文件rank.in。第一行是两个整数n,m(8<=n<=1000000,1<=m<=1000000),分别表示车手数和比赛场数。接下来m行,每行八

个整数,第i行第j个是rij(1<=rij<=n),表示第i场比赛获得第j名的车手的编号。

【输出格式】

输出文件rank.out。m行,第i行是一个整数ci,表示第i场比赛结束后排名第一的车手的编号。

【数据规模】

30%的数据满足n<=1000,m<=1000

Sample Input1

  14 3
1 4 14 8 10 6 12 7
4 6 14 8 3 11 1 13
1 11 14 8 10 3 9 12

Sample Output1

1
4
1

【题解】

因为只需要获取第一名的信息。所以在一边读数据的时候,一边维护一下最大值就可以了。其他值可以不用管。用一个a[1..n]数组来表示每名选手的成绩(只占6M),每次读到一

一名选手,就根据成绩加上分数就可以了。然后和最大值进行比较。如果大于则更新最大值。相等则根据编号,如果编号更小则更新一下编号。每输入一行就输出一行。

【代码】
#include <cstdio>
#include <cstring> const int dx[9] = {0,10,8,6,5,4,3,2,1}; int a[1000001],n,m,maxn,maxdata; void input_data()
{
scanf("%d%d",&n,&m);
for (int j = 1;j <= 8;j++) //先预处理一下只进行一场比赛的情况,先处理出第一场比赛之后的得分情况和第一名
{
int x;
scanf("%d",&x);
a[x] += dx[j];
if (j == 1)
{
maxn = x;
maxdata = 10;
}
}
printf("%d\n",maxn);
} void get_ans()
{
for (int i = 2;i <= m;i++) //然后再进行接下来的比赛.这下就可以根据得分情况与最大值进行比较。
{
int temp;
for (int j = 1;j <= 8;j++) //只有前8名才有得分。
{
scanf("%d",&temp);
a[temp]+=dx[j];
if (a[temp] > maxdata)
{
maxn = temp;
maxdata = a[temp];
}
else //如果分数相同,编号小的还可以更新编号。
if (a[temp] == maxdata && temp<maxn)
maxn = temp;
}
printf("%d\n",maxn); }
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
input_data();
get_ans();
return 0;
}

【u242】排名系统的更多相关文章

  1. BZOJ 1862: [Zjoi2006]GameZ游戏排名系统 [treap hash]

    1862: [Zjoi2006]GameZ游戏排名系统 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1318  Solved: 498[Submit][ ...

  2. [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统

    [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统 试题描述 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录 ...

  3. 【BZOJ】1862: [Zjoi2006]GameZ游戏排名系统 & 1056: [HAOI2008]排名系统(treap+非常小心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1862 http://www.lydsy.com/JudgeOnline/problem.php?id ...

  4. 1056: [HAOI2008]排名系统 - BZOJ

    Description 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录.当某个玩家上传自己最新的得分记录时,他原有的得分记录会被删除.为了减轻服务 ...

  5. HNOI2008 and ZJOI2006 排名系统

    1056: [HAOI2008]排名系统 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1311  Solved: 337[Submit][Statu ...

  6. 数据结构(Splay平衡树):HAOI2008 排名系统

    [HAOI2008] 排名系统 [题目描述] 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录.当某个玩家上传自己最新的得分记录时,他原有的得分记录 ...

  7. bzoj 1056 [HAOI2008]排名系统(1862 [Zjoi2006]GameZ游戏排名系统)

    1056: [HAOI2008]排名系统 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1854  Solved: 502[Submit][Statu ...

  8. 【洛谷P2584】【ZJOI2006】GameZ游戏排名系统题解

    [洛谷P2584][ZJOI2006]GameZ游戏排名系统题解 题目链接 题意: GameZ为他们最新推出的游戏开通了一个网站.世界各地的玩家都可以将自己的游戏得分上传到网站上.这样就可以看到自己在 ...

  9. 【BZOJ1862】[ZJOI2006]游戏排名系统 (Splay)

    [BZOJ1862][ZJOI2006]游戏排名系统 (Splay) 题面 BZOJ 洛谷 题解 双倍经验题

随机推荐

  1. AsyncCallback BeginInvode endinvode 异步调用

    下面是搜藏的代码: //首先准备好,要进行C#异步调用的方法(能C#异步调用的,最好不多线程) private string MethodName(int Num, out int Num2) { N ...

  2. ex.Message "ORA-01691: Lob 段 USER_MURPHY.SYS_LOB0000093717C00006$$ 无法通过 1024 (在表空间 ZJHH 中) 扩展"

    Oracle,往数据库里导入dmp的时候报错:ORA-01691:Lob 段 无法通过8192(在表空间TS_SI中)扩展 解决方案1: 原因:所创建的表空间不足. 创建一个可拓展的表空间 creat ...

  3. [D3] Build a Column Chart with D3 v4

    Column and bar charts are staples of every visualization library. They also make a great project for ...

  4. C++开源码项目汇总

    Google的C++开源码项目 v8  -  V8 JavaScript Engine V8 是 Google 的开源 JavaScript 引擎. V8 採用 C++ 编写,可在谷歌浏览器(来自 G ...

  5. 函数的引用透明性(referential transparency)

    1. 基础 初学程序设计时,比较容易混淆的两个概念是数学函数(math function)和程序中使用的函数. 在数学函数中 y=f(x),一个输入值有固定的输出值.例如,无论计算多少次,sinπ 的 ...

  6. KDE Plasma 5.8 的 LTS 周期正好与其所采用的 Qt 5.6 的 LTS 周期一致

    在 KDE Plasma 5.7 刚刚发布不久,KDE 开发团队就宣布了 KDE Plasma 5.8 的开发计划.这个版本将是一个 LTS 版本,据我所知,这应该是 KDE 历史上第一个 LTS 版 ...

  7. 【数学】概念的理解 —— 有序对(ordered pair)

    有序对 (a,b) 是一组对象,不同的顺序意味着不同的对象,(a,b)≠(b,a) 除非 a=b,正是因为对象的相对顺序是有着不同含义的,因此有时也称之为 2 维向量.与之相对的无序对(unorder ...

  8. 11、DMA操作说明

    先理解cache的作用CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容:否则,就 称为“ 不命中”,CPU只好去内 ...

  9. 用Eclipse替代Keil&IAR来开发ARM应用(升级版)

    Eclipse GNU ARM Plugin 2014/7/16 作者 kiya 几个月前写了一篇<),想自己丰衣足食的参考我的上一篇文章,以及GNU ARM的官网. 用Eclipse替代Kei ...

  10. 【51.27%】【codeforces 604A】Uncowed Forces

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...