小明在工作

Description

小明的工作是负责记录饭堂中正在排队的人的信息 
在他的工作中会有三种可能的事件发生: 
    1.编号为id的学生加入到队伍的最后面 
    2.排在最前面的学生打完饭离开了队伍 
    3.老板过来询问当前排在队伍前方第k个的学生的编号 
由于每天的工作量太大(每天最多有100000个以上事件发生), 
小明苦不堪言,让你写个程序帮他

Input

输入的第一个数是正整数T,表明接下来有T组数据 
每组数据的第一个数为正整数n,表示有n件事会发生 
接下来有n行,每行分别表示上诉三种事件的其中一种,格式分别如下: 
1 id 

3 k 
注意当队伍中已经没人的时候请忽略第2种事件,每组数据新开始的时候队伍中人数都为0

Output

对于给个第3种的事件,请输出第k个学生的编号, 
如果队伍的人数小于k,输出“na li you zhe me duo ren”。

Sample Input

2
5
1 1
1 2
3 1
2
3 1
2
1 1
3 2

Sample Output

1
2
na li you zhe me duo ren

HINT

大意:- -||傻逼一样看了题目觉得是队列后来又发现要读出第K个数,需要一个循环把所有的队列值都拿出来读出那个K值再放进去结果超时,看了别人的代码~~~~只能膜拜orzorzorz——————其实就是数组,用一个标记,标记当前的第一个人在哪儿。

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int MAX = 1000010;
int a[MAX];
int main()
{
    int T,n,m,k,number,flag1,flag2;
    cin >> T;
    while(T--){
        flag1 = flag2 = 0;
        cin >> n;
        while(n--){
            scanf("%d",&m);
          if(m == 1){
                scanf("%d",&number);
                a[flag1++] = number;
          }
          else if(m == 2){
                if(flag2 < flag1) flag2++;
          }
          else {
                scanf("%d",&k);
                if(k > flag1 - flag2) printf("na li you zhe me duo ren\n");
                else printf("%d\n", a[flag2+k-1]);
          }
        }
    }
    return 0;
}

时间: 2024-08-05 21:19:14

小明在工作的相关文章

读《小明升职记》(一)

每天的生活过的很焦躁,时间明显不够用,啥也没干就到了晚上,效率极低,毫无成就感,如此蹉跎岁月,没两天老之将至. 需要学习一点时间管理的技巧来规划个人时间. 原先用过番茄工作法,效率有所提升,起码在25分钟内可以做到比较专注,但也没坚持下来. 番茄虽好,仍感觉点太小,盲目感仍在. 网上知乎寻找了许多时间管理类的贴,下载了基本经典书籍. 其中一本是<小明升职记>,语言简朴诙谐,结合实例,国人写的,上来先看这本不至于被大部头弄得挫败. <小明>概要: 1. 处在网络浅阅读时代的人,如果没

小明的调查作业

小明的调查作业 描述 小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己.他先用计算机生成了N个1到1000之间的随机整数(0<N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成“去重”与“排序”的工作. 输入 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N 第2行有N个用空格

【刷题小记48】小明的调查作业

描述 小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己.他先用计算机生成了N个1到1000之间的随机整数(0<N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成"去重"与"排序"的工作. 输入 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N

nyoj 48小明的调查作业

 小明的调查作业 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己.他先用计算机生成了N个1到1000之间的随机整数(0<N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成"去重"与"

《小强与小明》——正在疯传的伟大的故事

1.小强每天在村里晃悠,爹妈看着发愁,心想这孩子将来怎么办呀:小明每日都苦读诗书,父母喜在心里,村里人都认定他必有出息. 2.那年,小强和小明都是十九岁,小强跟着村里的外出打工,来到了高速公路的工地,保底工资三千块:小明考上了一所重点大学,读的是道路与桥梁专业,学费每年五千多. 3.那年,小强和小明都是二十三岁,小强的爹妈给他说个巧媳妇,是邻村的,特别贤惠:小明在大学里谈了个女朋友,是邻校的,很有文化. 4.那年,小强和小明都是二十四岁,小强在老家结了婚,把媳妇带到工地上,来给他洗衣做饭,恩爱有

【开心一笑】小明的故事第二季

1.老师:蒸一个包子一分钟,蒸九个包子要多久? 小明:九分钟? 老师:你傻呀!你们家蒸包子一个一个蒸呀?! 小明表示不服:那我问你,吃一个馒头一分钟,吃十个馒头呢? 老师:十分钟呀!你以为我想你一样傻呀! 小明:十分钟吃十个馒头!撑死你个饭桶! 老师:...滚出去. 2.语文课上老师说:诸葛亮上知天文下知地理,精通奇门八卦,阅读的各种书籍无数. 小明:老师,有本书他肯定没看过! 老师:哦,你说说是什么书? 小明:<三国演义>! 老师:滚出去… 3.小明:老师,我以后再也不惹你生气了. 老师:这

小明 和 VBA 的第一次约会

唠嗑老掉牙的一小段 我第一次对 EXcel 有感觉,应该是早些年在富士康实践的时候.那时候是在 FQC 岗位做事,有次在过年值夜班比较闲的时候,用了 Excel 做了个工资的计算,其中是利用了 Excel 一些简单的公式来计算的.那时候还很年轻,这个小小的作品也感到小小的喜悦,因为做出来,好多同事也用上了.(那时候工作的电脑只能查看内部网的“新闻”,手机也只能一些干部携带到工作区,数据的拷贝还是用的软盘,没错,就是存储容量1到2 m 容量的软盘) 这应该是我第一次间接地爱恋了 VBA(Visua

小明系列问题――小明序列(LIS)

小明系列问题――小明序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4521 Description 大家都知道小明最喜欢研究跟序列有关的问题了,可是也就因为这样,小明几乎已经玩遍各种序列问题了.可怜的小明苦苦地在各大网站上寻找着新的序列问题,可是找来找去都是自己早已研究过的序列.小明想既然找不到,那就自己来发明一个新的序列问题吧!

hdu4521 小明系列问题——小明序列(LIS变种 (线段树+单点更新解法))

链接: huangjing 题目:中文题目 思路: 这个题目如果去掉那个距离大于d的条件,那么必然是一个普通的LIS,但是加上那个条件后就变得复杂了.用dp的解法没有看懂,我用的线段树的解法...就是采用延迟更新的做法,用为距离要大于d啊,所以我们在循环到第i的时候,就对(i-d-1)这个点进行更新,因为如果在(i-d-1)这个点更新了,会对后面的造成影响,然后线段树的tree[]数组存的是以i结尾的最长lis,那么每次询问的时候就找最大的tree[]就可以了... 代码: 小明系列问题--小明