Keep In Line

又到饭点了,SK同学靠着惯性走到了食堂,但长长的队伍顿时让他失去了食欲。突然,他注意到某个窗口前的队伍里明显存在插队的现象,于是他默默记录下了同学们进队和出队的变化。    
对于进队,SK同学只知道队伍里多了一个人,并不知道新来的人是老老实实站到了队尾还是插到了队伍里的某个位置;对于出队,SK同学能确定是队伍里站在最前面的人出队了。
初始时队伍为空,给出 n 条队伍进出的信息,保证已经出队的同学不会再入队,并且最终队伍也为空,现在SK同学想知道有多少不插队的好同学。

输入
第一行是一个正整数 T (T ≤ 5),表示测试数据的组数.
对于每组测试数据, 第一行是一个整数 n (1≤ n ≤ 100000),表示这个队伍进出的信息数.
 接下来 n 行,每行是两个字符串 Opt Name,其中 Opt 为 "in" 代表进队,"out" 代表出队,Name 为进队或出队的人的名字, 所有信息按照时间顺序给出,名字由英文字母和阿拉伯数字组成,长度不超过 10,保证每个人的名字各不相同。

输出
对于每组测试数据,输出一行,包含一个整数,表示不插队的人数。

Input
1
6
in quailty
in hwq1352249
out hwq1352249
in zhuaiballl
out quailty
out zhuaiballl

Output
2

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pair<int,int> PII;
const double PI=acos(-1.0);
const int N=2e6+10;
int t;
int n;
string s,p;
queue <int> q;
int cnt;
map <string,int> k;
bool vis[N];
int get(string s)
{if (k.count(s)==0) k[s]=++cnt;return k[s];
}
signed main()
{ios;cin>>t;while (t--){cin>>n;cnt=0;k.clear();int sum=0;memset(vis,0,sizeof vis);while (n--){cin>>s>>p;int x=get(p);if (s=="in") q.push(x);else {if (q.front()==x){sum++;q.pop();}else {vis[x]=1;}}while (q.size()&&vis[q.front()]) {q.pop();}}cout<<sum<<endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Retrieval-Augmented Generation for Large Language Models: A Survey

PS: 梳理该 Survey 的整体框架&#xff0c;后续补充相关参考文献的解析整理。本文的会从两个角度来分析总结&#xff0c;因此对于同一种技术可能在不同章节下都会有提及。第一个角度是从整体框架的迭代来看&#xff08;对应RAG框架章节&#xff09;&#xff0c;第二个是从RAG中…

Linux和windows进程同步与线程同步那些事儿(四):windows 下进程同步

Linux和windows进程同步与线程同步那些事儿&#xff08;一&#xff09; Linux和windows进程同步与线程同步那些事儿&#xff08;二&#xff09;&#xff1a; windows线程同步详解示例 Linux和windows进程同步与线程同步那些事儿&#xff08;三&#xff09;&#xff1a; Linux线…

Tensorflow Lite从入门到精通

TensorFlow Lite 是 TensorFlow 在移动和 IoT 等边缘设备端的解决方案&#xff0c;提供了 Java、Python 和 C API 库&#xff0c;可以运行在 Android、iOS 和 Raspberry Pi 等设备上。目前 TFLite 只提供了推理功能&#xff0c;在服务器端进行训练后&#xff0c;经过如下简单处…

IC设计的前端和后端是如何区分的?

一、工作着重点不同 **1、IC前端&#xff1a;**根据芯片规格书完成SOC的设计和集成&#xff0c; 使用仿真验证工具完成SOC的设计验证。 **2、IC后端&#xff1a;**将前端设计产生的门级网表通过EDA设计工具进行布局布线和进行物理验证并最终产生供制造用的GDSII数据 二、工作…

【开源】基于JAVA+Vue+SpringBoot的超市账单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3.3 后端设计在这里插入图片描述 四、系统展示五、核心代码5.1 查询供应商5.2 查询商品5.3 新增超市账单5.4 编辑超市账单5.5 查询超市账单 六、免责说明 一、摘要 1.1 项目介绍 基于…

使用pygame.draw绘制基本图形

import pygame# 初始化pygame pygame.init()# 创建显示窗口 screen pygame.display.set_mode((640, 480)) pygame.display.set_caption("绘制基本图形")# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)…

用java实现Client和Server之间的互相通信

概要&#xff1a;看过我之前文章的人都知道&#xff0c;client和server之间的通信必不可少的就是socket。而java已经帮我们做了很多事情。 创建Server端 第一步&#xff0c;创建ServerSocket 这个从名字上就可以看出来&#xff0c;服务器上的socket 0.0 ServerSocket ser…

算法篇:动态规划II

35、647. 回文子串 ①状态表示&#xff1a;dp[i][j]表示&#xff1a;s字符串[i&#xff0c;j]的子串&#xff0c;是否是回文串。(i<j) ②状态转移方程&#xff1a; if(s[i]!s[j]) dp[i][j]false; else if(s[i]s[j]) { if(ij||i1j)dp[i][j]true; else dp[i1][j-1]; }…

SpringMVC-04

RESTful是一种针对Web服务的软件架构风格&#xff0c;它基于HTTP协议和其他标准&#xff0c;用于构建可扩展、可维护和可拓展的网络应用程序。 RESTful风格的设计原则包括以下几点&#xff1a; 资源&#xff1a;将应用程序的所有内容都视为资源&#xff0c;每个资源都有唯一的…

(详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models

Haoran Wei1∗, Lingyu Kong2∗, Jinyue Chen2, Liang Zhao1, Zheng Ge1†, Jinrong Yang3, Jianjian Sun1, Chunrui Han1, Xiangyu Zhang1 1MEGVII Technology 2University of Chinese Academy of Sciences 3Huazhong University of Science and Technology arXiv 2023.12.11 …

通过dockerfile基于centosdocker镜像和postgresql12的离线安装包制作单机版的Docker镜像

可以按照以下步骤来制作一个基于CentOS Docker镜像和PostgreSQL 12离线安装包的单机版Docker镜像&#xff1a; 首先&#xff0c;创建一个空文件夹作为工作目录。 将CentOS Docker镜像保存到本地文件系统中&#xff0c;命名为centos.tar。你可以从Docker Hub下载CentOS Docker镜…

Docker部署Homepage个人引导页

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; 个人主页&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying Homepage | 主页 1. 安装环境2. Docker部署 原作者&#xff1a;無…

flutter release包使用adb查看日志排查错误实践

release包给出去后发现出现无法启动的情况&#xff0c;需要flutter开发排查 &#xff0c;直接将release包安装到模拟器 使用adb 去连接模拟器 我这边是MuMu模拟器 adb connect 127.0.0.1:7555 然后查看设备列表 adb devices 直接输入0 即选择第一个设备 然后使用 adb logcat …

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘&#xff0c;信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy&#xff1a; pip install scrapy 注意&#xff1a;需要安装在python解释器相同的位置,例如&#xf…

Spring原理-7.切点与切面

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 &#xff08;一&#xff09;HTML&#xff08;.html/.htm&#xff09; 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称:HTML&#xff09;是一种用于创建网页的标准标记语言。HTML是一种基础技术&#xff0c;常与CSS、Ja…

高通rb5的fastboot设备识别不了及驱动安装问题

Android fastboot驱动无法安装和识别问题-CSDN博客 以上为转载出处。

批量求和(文件)

请编写函数&#xff0c;从一个文件中读取实数求和&#xff0c;并将结果写入另一个文件。 函数原型 void BatchAdd(FILE *in, FILE *out); 说明&#xff1a;参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据&#xff0c;将结果写入 out 所指的文件中。 …

C语言中socket模块、线程

socket编程 windows下TCP协议 测试环境基于Win10 x64&#xff0c;Visual Studio 服务端代码1. 初始化Winsock库&#xff1b;2. 创建套接字&#xff1b;3. 配置服务端地址&#xff1b;4. 绑定套接字&#xff1b;5. 监听连接&#xff1b;6. 接收连接&#xff1b;7. 发送数据给客…

使用global mapper将分块DSM/DOM合并导出

使用global mapper将分块DSM/DOM合并导出 使用context capture生产dom/dsm时通常因为内存问题而选择分块生产&#xff0c;那么得到的dsm/dom则是一块一块的&#xff0c;如下&#xff1a; 那么为了合并成一张影像&#xff0c;可以使用强大的地图软件 Global Mapper&#xff0c…