当前位置:网站首页>ZCMU--1396: 队列问题(2)
ZCMU--1396: 队列问题(2)
2022-07-07 05:05:00 【小小小Why】
Description
有一个含有n个元素的队列q,每个元素的大小满足1<=xi<=9(0<i<n)。队列有一种操作,对于队首元素若是整个队列最大的则出队列,否则加入队尾。对于一个给定的m,你能告诉我xm是第几个出队列的吗?
Input
输入数据第一行是一个整数T(1<=T<=1000),表示输入数据的组数;每组数据的第一行是两正整数n表示队列的大小和第几个元素(1<n<=1000,0<=m<n),第二行有n个数xi ,分别代表每个元素的大小。
Output
对于每组测试数据,输出xm是第几个出队列。
Sample Input
3
1 0
5
4 2
1 2 3 4
6 0
1 1 9 1 1 1
Sample Output
1
2
5
解析:我们利用set来快速得出当前队列中最大元素值,因为有元素重复,所以我们得用multiset来存。我们可以用结构体来存元素的id和valu值,c表示第几个出列,如果a[ i ]==st.*rbegin()表示a[ i ]是当前队列中最大的元素,出列,如果是xm,那么就输出c即可,反之不是最大值,就到队尾,对应multiset中也要删除该元素,如此反复直到xm出列。
#include <stdio.h>
#include <set>
using namespace std;
struct su
{
int id;
int v;
}a[10005];
int main()
{
int t,i,n,k,c;
scanf("%d",&t);
while(t--){
multiset<int>st; //建立multiset
scanf("%d%d",&n,&k);
c=1; //表示第几个出列
for(i=0;i<n;i++){
scanf("%d",&a[i].v);
a[i].id=i;
st.insert(a[i].v); //存入set
}
for(i=0;i<n;i++){
if(a[i].v==*st.rbegin()){ //表示是当前队列最大值
if(a[i].id==k){ //刚好是xm
printf("%d\n",c);
break;
}else st.erase(--st.end()),c++; //删除最后一个元素,也就是最大值
}else{ //不是最大值,模拟到队尾
a[n].v=a[i].v;
a[n++].id=a[i].id;
}
}
st.clear();
}
return 0;
}边栏推荐
- Linux server development, SQL statements, indexes, views, stored procedures, triggers
- 2022 welder (elementary) judgment questions and online simulation examination
- Empire CMS collection Empire template program general
- [VHDL parallel statement execution]
- padavan手动安装php
- 2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
- 快解析内网穿透为文档加密行业保驾护航
- Introduction à l'objet blob
- LeetCode简单题之找到一个数字的 K 美丽值
- 面试题(CAS)
猜你喜欢

电池、电机技术受到很大关注,反而电控技术却很少被提及?

数据库实时同步利器——CDC(变化数据捕获技术)

Real time monitoring of dog walking and rope pulling AI recognition helps smart city

船载雷达天线滑环的使用

【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)

Linux server development, redis protocol and asynchronous mode

Empire CMS collection Empire template program general

Most elements

Cnopendata American Golden Globe Award winning data

Linux server development, MySQL transaction principle analysis
随机推荐
ROS bridge notes (05) - Carla_ ackermann_ Control function package (convert Ackermann messages into carlaegovehiclecontrol messages)
buureservewp(2)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after conne
QT learning 28 toolbar in the main window
Complex network modeling (III)
数据库实时同步利器——CDC(变化数据捕获技术)
电池、电机技术受到很大关注,反而电控技术却很少被提及?
2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
[matlab] when matrix multiplication in Simulink user-defined function does not work properly, matrix multiplication module in module library can be used instead
【数字IC验证快速入门】10、Verilog RTL设计必会的FIFO
让Livelink初始Pose与动捕演员一致
运放电路的反馈电阻上并联一个电容是什么作用
Leetcode 90: subset II
Topic not received? Try this
[VHDL parallel statement execution]
调用 pytorch API完成线性回归
UnityHub破解&Unity破解
Introduction to basic components of wechat applet
Notes on PHP penetration test topics
Chip design data download