题目名称 197. [HAOI 2008]排名系统
输入输出 rank.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 11
题目来源 GravatarBYVoid 于2008-11-07加入
开放分组 全部用户
提交状态
分类标签
HAOI 字符串 平衡树 字典树/Trie
分享题解
通过:100, 提交:587, 通过率:17.04%
Gravatar真呆菌 100 0.625 s 13.64 MiB C++
Gravatar真呆菌 100 0.655 s 13.64 MiB C++
Gravatarkaaala 100 0.660 s 13.63 MiB C++
Gravataryyy 100 0.676 s 18.38 MiB C++
Gravatarnicheng 100 0.718 s 21.59 MiB C++
Gravatarnicheng 100 0.721 s 21.59 MiB C++
Gravatarnicheng 100 0.734 s 19.43 MiB C++
Gravatarlqwang1985 100 0.736 s 11.61 MiB Pascal
Gravatarlqwang1985 100 0.747 s 11.52 MiB Pascal
Gravatarqqwqert007 100 0.753 s 37.51 MiB C++
关于 排名系统 的近10条评论(全部评论)
回复 @sherc :
确实挂了。。。
GravatarGo灬Fire
2017-04-18 14:20 18楼
我增加了一组数据,所有写trie的都会挂!
Gravatar再见
2017-04-18 13:10 17楼
时至今日终于过了娃哈哈
GravatarGo灬Fire
2017-02-22 10:49 16楼
数据中分数有0
haoi,重新定义正整数。
Gravatarconfoo
2016-12-14 21:38 15楼
Trie树用来代替map,SBT用来维护数据
Gravatar_Itachi
2016-07-31 10:54 14楼
智商%=1,把Maintain写挂了- -
GravatarFoolMike
2016-07-15 10:27 13楼
我这个SBT哪里写挂了?为什么4T?递归写法有这么慢吗?
GravatarFoolMike
2016-07-15 10:21 12楼
为什么这么卡我……
GravatarTenderRun
2016-06-16 20:18 11楼
辣鸡常数....辣鸡常数.......辣鸡常数..........
GravatarFmuckss
2016-03-31 18:55 10楼
坑的一笔啊!!!
Gravatarnieyunhe
2016-01-12 16:05 9楼

197. [HAOI 2008]排名系统

★★★☆   输入文件:rank.in   输出文件:rank.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

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

【输入格式】

第一行是一个整数 $n(10 \leq n \leq 250000)$ 表示请求总数目。接下来 $n$ 行,每行包含了一个请求。请求的具体格式如下:

$+Name$ $Score$ 上传最新得分记录。$Name$表示玩家名字,由大写英文字母组成,不超过 $10$ 个字符。$Score$ 为最多 $8$ 位的正整数。

$?Name$ 查询玩家排名。该玩家的得分记录必定已经在前面上传。如果两个玩家的得分相同,则先得到该得分的玩家排在前面。

$?Index$ 返回自第 $Index$ 名开始的最多 $10$ 名玩家名字。$Index$ 必定合法,即不小于 $1$,也不大于当前有记录的玩家总数。

【输出格式】

对于 $?Name$ 格式的请求,应输出一个整数表示该玩家当前的排名。

对于 $?Index$ 格式的请求,应在一行中依次输出从第 $Index$ 名开始的最多 $10$ 名玩家姓名,用一个空格分隔。

【输入样例】

20
+ADAM 1000000
+BOB 1000000
+TOM 2000000
+CATHY 10000000
?TOM
?1
+DAM 100000
+BOB 1200000
+ADAM 900000
+FRANK 12340000
+LEO 9000000
+KAINE 9000000
+GRACE 8000000
+WALT 9000000
+SANDY 8000000
+MICK 9000000
+JACK 7320000
?2
?5
?KAINE

【输出样例】

2
CATHY TOM ADAM BOB
CATHY LEO KAINE WALT MICK GRACE SANDY JACK TOM BOB
WALT MICK GRACE SANDY JACK TOM BOB ADAM DAM
4

【样例解释】

+ADAM 1000000    加入ADAM的得分记录
+BOB 1000000     加入BOB的得分记录
+TOM 2000000     加入TOM的得分记录
+CATHY 10000000    加入CATHY的得分记录
?TOM         输出TOM目前排名
?1          目前有记录的玩家总数为4,因此应输出第1名到第4名。
+DAM 100000     加入DAM的得分记录
+BOB 1200000     更新BOB的得分记录
+ADAM 900000     更新ADAM的得分记录(即使比原来的差)
+FRANK 12340000    加入FRANK的得分记录
+LEO 9000000     加入LEO的得分记录
+KAINE 9000000    加入KAINE的得分记录
+GRACE 8000000    加入GRACE的得分记录
+WALT 9000000    加入WALT的得分记录
+SANDY 8000000    加入SANDY的得分记录
+MICK 9000000    加入MICK的得分记录
+JACK 7320000    加入JACK的得分记录
?2          目前有记录的玩家总数为12,因此应输出第2名到第11名。
?5          输出第5名到第13名。
?KAINE        输出KAINE的排名

【数据范围】

$20\%$ 的数据,满足:$N \leq 100$;

$100\%$ 的数据,满足:$N \leq 250000$;