题目名称 | 926. [河南省队2012] 忠诚点数榜 |
---|---|
输入输出 | lp.in/out |
难度等级 | ★ |
时间限制 | 200 ms (0.2 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 | kaaala 于2012-07-16加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:2, 提交:3, 通过率:66.67% | ||||
kaaala | 100 | 0.606 s | 13.63 MiB | C++ |
真呆菌 | 100 | 0.651 s | 253.99 MiB | C++ |
Makazeu | 70 | 0.936 s | 6.03 MiB | C++ |
本题关联比赛 | |||
20120720 |
关于 忠诚点数榜 的近10条评论(全部评论) | ||||
---|---|---|---|---|
0.2m啊!!! 我的 map+SBT超时3组。
map 是用来当 已【字符串】为关键字的平衡树 SBT是以【分数】为关键字的平衡树 如果有时间就把map改用Trie试试~省去了一个LogN的复杂度和一坨很大的常数~~
Makazeu
2012-07-20 21:36
2楼
| ||||
卡的就是stl你们还用stl,呵呵
kaaala
2012-07-20 14:54
1楼
|
萨沙入侵开始了!萨沙是一群穷凶极恶的海盗,他们在入侵我们的星域,企图占领整个宇宙。
统合部为了保护星域的安全,决定设置一个忠诚点数榜单以激励飞行员去干掉这群入侵者。
然而,统合部的工程师不知道如何编辑这个榜单,于是他们找到了宇宙中最聪明的你,让你来完成这项工作。
榜单是一个自动化的系统。榜单接受3种操作:上传一条击杀记录、查询某飞行员当前排名以及返回某区间内排名记录。
当某飞行员上传新的击杀记录的时候,原有该飞行员的击杀记录将被删除。
为了减轻服务器的负担,统合部决定每次返回区间排名的时候,只返回10名飞行员的记录。
Input
第一行是一个整数n(10<=n<=250000)表示操作总数目。接下来n行,每行包含了一个操作。操作的具体格式如下:
+id point 上传最新击杀记录。ID表示飞行员的编码,由大写英文字母组成,不超过10个字符。point为最多8位的正整数。
?id 查询飞行员排名。该飞行员的得分记录必定已经在前面上传。如果两个飞行员的得分相同,则先得到该得分的飞行员排在前面。
?num 返回自第num名开始的最多10名玩家名字。num必定合法,即不小于1,也不大于当前有记录的玩家总数。
Output
对与?id的操作,输出对应id飞行员当前排名
对与?Num的操作,在一行中输出从第num名起往后最多10名飞行员,每个飞行员中间用一个空格间隔。
样例:
lp.in
20
+ORZLCCOW 1000000
+BOB 1000000
+TB 2000000
+KAAALA 10000000
?TB
?1
+DAM 100000
+BOB 1200000
+ORZLCCOW 900000
+PB 12340000
+LEO 9000000
+POM 9000000
+GRACE 8000000
+WALT 9000000
+SANDY 8000000
+MICK 9000000
+JACK 7320000
?2
?5
?POM
lp.out
2
KAAALA TB ORZLCCOW BOB
KAAALA LEO POM WALT MICK GRACE SANDY JACK TB BOB
WALT MICK GRACE SANDY JACK TB BOB ORZLCCOW DAM
4
数据范围:
20%数据满足N<=100
100%数据满足N<=250000