luogu P2776 [SDOI2007]小组队列
题目背景
嘛,这道非常简单的给大家提供信心的省选题洛谷居然没有!
这么简单的题怎么可以没有!
给大家提升士气是义不容辞的责任!
所以我就来补一下啦..
值得一提的是,标程是我自己做的..
很渣,因为数据很水所以能AC..
大神勿喷..
题目描述
有 m 个小组, n 个元素,每个元素属于且仅属于一个小组。
支持以下操作:
push x:使元素 x 进队,如果前边有 x 所属小组的元素,x 会排到自己小组最后一个元素的下一个位置,否则 x 排到整个队列最后的位置。
pop:出队,弹出队头并输出出队元素,出队的方式和普通队列相同,即排在前边的元素先出队。
输入输出格式
输入格式:
第一行有两个正整数 n, m,分别表示元素个数和小组个数,元素和小组均从 0 开始编号。
接下来一行 n 个非负整数 Ai,表示元素 i 所在的小组。
接下来一行一个正整数 T ,表示操作数。
接下来 T 行,每行为一个操作。
输出格式:
对于每个出队操作输出一行,为出队的元素。
输入输出样例
4 2
0 0 1 1
6
push 2
push 0
push 3
pop
pop
pop
2
3
0
说明
对于30%的数据,1≤n≤100,1≤m≤10,T≤50。
对于100%的数据,1≤n≤100000,1≤m≤300,T≤100000,输入保证操作合法。
用两个队列进行模拟
q记录小组顺序
que[]记录小组内元素
#include<cstdio>
#include<queue>
using namespace std;
queue<int>que[],q;
int a[];
int main()
{
int n,m;
char s[];
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%s",s);
if(s[]=='u')
{
scanf("%d",&m);
if(que[a[m]].empty()) q.push(a[m]);
que[a[m]].push(m);
}
else if(s[]=='o')
{
printf("%d\n",que[q.front()].front());
que[q.front()].pop();
if(que[q.front()].empty()) q.pop();
}
}
return ;
}
luogu P2776 [SDOI2007]小组队列的更多相关文章
- P2776 [SDOI2007]小组队列
P2776 [SDOI2007]小组队列 题目背景 嘛,这道非常简单的给大家提供信心的省选题洛谷居然没有! 这么简单的题怎么可以没有! 给大家提升士气是义不容辞的责任! 所以我就来补一下啦.. 值得一 ...
- 洛谷P2776 [SDOI2007]小组队列 链表 + 模拟
有些细节需要注意: 1.编号和元素种类都从0开始标号. 2.需要特判一下队列被弹空的情况. Code: #include<cstdio> #include<cstring> u ...
- [luogu P3960] [noip2017 d2t3] 队列
[luogu P3960] [noip2017 d2t3] 队列 题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Syl ...
- luogu 2827 蚯蚓 单调队列/优先队列
易知可利用优先队列选取最大值: 但是通过分析可知,先取出的蚯蚓分开后仍然要比后分的长,所以可直接利用单调队列找队头即可,分三个单调队列,分别找未切割,切割,切割2三种情况 #include<bi ...
- LUOGU P2564 [SCOI2009]生日礼物 (队列+模拟)
传送门 解题思路 还是比较好想的,用一个队列,然后把所有点放在一起排个序,依次入队.每次检查队头元素的种类是否为当前入队元素种类,是的话就一直\(pop\),每次更新答案即可. 代码 #include ...
- luogu P2462 [SDOI2007]游戏
LINK:SDOI2007游戏 题意:接龙前一个要比后面大1 且后一个单词出现的各自字母的次数>=前一个单词各自的字母的次数 考虑暴力dp sort之后dpY 显然会T. 考虑我们没必要枚举j ...
- luogu 2569 股票交易 单调队列dp
注意转移方程 分1.凭空买 2.不买不卖 3.在原来基础上买 4.在原来基础上卖 四种情况 head=1,tail=0;再判断一下head<=tail也可以 #include<bits/s ...
- 【数据结构】洛谷2019 OI春令营 - 普及组 作业
[P3662][USACO17FEB]Why Did the Cow Cross the Road II S 求解连续的k个数的最大值,利用前缀和维护即可. #include<bits/stdc ...
- HGOI 20190218 题解
/* 又是AK局... hjc又双叒叕AK了... Hmmm...我侥幸 */ Problem A card 给出无序序列a[]可以选择一个数插入到合适的位置作为一次操作,至少多少次操作后可以把序列变 ...
随机推荐
- jenkins构建定时任务
jenkins构建定时任务的主要两种形式 1.Build periodically:周期性构建项目,无论有没有代码更新到时间都会构建项目 2.Poll SCM:定时检查源码变更(根据SCM软件的版本号 ...
- Linux认知之旅【03 进一步了解Linux命令】!
再仔细的研究一下命令,你会进一步提高提高对Linux的操作! 看完本文有空http://man.linuxde.net/转转!这是个好网站! 一.命令是什么? 计算机术语[command]:形容在对计 ...
- linux备忘录-文件系统管理
Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...
- 团队项目-第三次scrum 会议
时间:10.25 时长:30分钟 地点:线上 工作情况 团队成员 已完成任务 待完成任务 解小锐 根据初步讨论结果编写初步的api文档 编写project和projectGenerator类 陈鑫 采 ...
- ASP.NET——实现两个下拉框动态联动
引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...
- [洛谷P4320]道路相遇
题目大意:基本同上一题[bzoj5329][Sdoi2018]战略游戏,只是每个点集内只有两个点,且只有一组询问而已.(双倍经验?我反正就直接改了一下代码就交了) 题解:同上一题(链接见“题目大意”) ...
- python带header
headers = { "Accept":"text/html,application/xhtml+xml,application/xml;", "A ...
- uva1214 Manhattan Wiring 插头DP
There is a rectangular area containing n × m cells. Two cells are marked with “2”, and another two w ...
- Welcome to Workrave
Welcome to Workrave Workrave is a free program that assists in the recovery and prevention of Repeti ...
- async-http
android-async-http开源框架可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来也很简单,下面做简单介绍,具体详细使用看官网:https://github.com/loopj/a ...