码迷,mamicode.com
首页 > 其他好文 > 详细

河南多校联合训练 南阳理工 1261 音痴又音痴的LT

时间:2016-08-22 18:03:13      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

描述

LT最近一直在无限循环薛之谦的歌,简直都中毒了!可是呢…他的歌LT还是不会唱(其实不止他的歌LT不会唱,所有人的歌LT都不会唱…因为LT是标准的音痴)可是LT又很喜欢唱歌(所以LT不仅是音痴还是音痴)…没错,这对于LT的室友来说简直是噩梦…

    现在呢,LT有N次操作,每次操作只会有两种可能:

  I a: 表示着LT使用唱歌软件唱歌得到的分数。

  Q k: 表示着LT想知道自己得到的第k小的分数是多少。(如果没有第k小,输出-1)

 
输入
有多组输入(不超过20组),每组输入的第一行是一个N,表示有N次操作。(0<N<100000)
接下来的2到N+1行每行有一个操作op和一个数字num。op只可能是I或Q,0<=num<1000000
输出
对于每一个Q操作,输出对应的答案~(~ ̄▽ ̄)~
样例输入
10
Q 123
I 123
I 32
Q 1
Q 2
Q 2
I 32
Q 1
Q 2
Q 3
样例输出
-1
32
123
123
32
32
123

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1261

************************************************

TLE代码:

 1  
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<math.h>
 5 #include<queue>
 6 #include<algorithm>
 7 #include<time.h>
 8 #include<stack>
 9 using namespace std;
10 #define N 120000
11 #define INF 0x3f3f3f3f
12 
13 int b[N];
14 
15 int main()
16 {
17     int T,a,i=0,j;
18     char s[10];
19 
20     while(scanf("%d", &T) != EOF)
21     {
22         memset(b,INF,sizeof(b));
23 
24        for(j=0;j<T;j++)
25         {
26             scanf("%s%d", s, &a);
27 
28             if(s[0]==I)
29             {
30                 b[i++]=a;
31             }
32             else
33             {
34                 sort(b,b+i);
35                 int x=a-1;
36 
37                 if(b[x]==INF)
38                     printf("-1\n");
39                 else
40                     printf("%d\n", b[x]);
41             }
42         }
43     }
44     return 0;
45 }
46         

T完了之后就蒙了,只过了一遍啊,审核一遍,忽然想到sort的复杂度是nlogn,然后想原始二分吧,分完了又好像不太会排序问题了,找复杂度更低的排序方法吧,找到了个桶排序,可惜貌似应用不了,直到后来的后来,才恍然想起某人给我讲过的二分函数,于是。。。

AC代码:

 

 

河南多校联合训练 南阳理工 1261 音痴又音痴的LT

标签:

原文地址:http://www.cnblogs.com/weiyuan/p/5796453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!