SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
Beppa and SwerChat
题面翻译
B和她的怪胎朋友在某个社交软件上的聊天群聊天。
这个聊天群有包括B在内的n名成员,每个成员都有自己从1-n的独特id。
最近使用这个聊天群的成员将会在列表最上方,接下来较次使用聊天软件的成员将会在列表第二名,依次类推。
B会在上午9点和晚上22点登录,并记录这时的列表。
B确保同一时间只有一个人登录,并且在九点和22点并没有其他人登录。
请你输出在9-22点之间的一种成员登录过的最小数量。
题目描述
Beppa and her circle of geek friends keep up to date on a group chat in the instant messaging app SwerChat $ ^{\text{TM}} $ .
The group has $ n $ members, excluding Beppa. Each of those members has a unique ID between $ 1 $ and $ n $ . When a user opens a group chat, SwerChat $ ^{\text{TM}} $ displays the list of other members of that group, sorted by decreasing times of last seen online (so the member who opened the chat most recently is the first of the list). However, the times of last seen are not displayed.
Today, Beppa has been busy all day: she has only opened the group chat twice, once at 9:00 and once at 22:00. Both times, she wrote down the list of members in the order they appeared at that time. Now she wonders: what is the minimum number of other members that must have been online at least once between 9:00 and 22:00?
Beppa is sure that no two members are ever online at the same time and no members are online when Beppa opens the group chat at 9:00 and 22:00.
输入格式
Each test contains multiple test cases. The first line contains an integer t t t ( 1 ≤ t ≤ 10 000 1 \leq t \leq 10\,000 1≤t≤10000 ) — the number of test cases. The descriptions of the $ t $ test cases follow.
The first line of each test case contains an integer n n n ( 1 ≤ n ≤ 1 0 5 1 \leq n \leq 10^5 1≤n≤105 ) — the number of members of the group excluding Beppa.
The second line contains $ n $ integers $ a_1, , a_2, , \dots, , a_n $ ( $ 1 \le a_i \le n $ ) — the list of IDs of the members, sorted by decreasing times of last seen online at 9:00.
The third line contains $ n $ integers $ b_1, , b_2, , \dots, , b_n $ ( $ 1 \le b_i \le n $ ) — the list of IDs of the members, sorted by decreasing times of last seen online at 22:00.
For all $ 1\le i < j\le n $ , it is guaranteed that $ a_i \ne a_j $ and $ b_i \ne b_j $ .
It is also guaranteed that the sum of the values of $ n $ over all test cases does not exceed $ 10^5 $ .
输出格式
For each test case, print the minimum number of members that must have been online between 9:00 and 22:00.
样例 #1
样例输入 #1
4
5
1 4 2 5 3
4 5 1 2 3
6
1 2 3 4 5 6
1 2 3 4 5 6
8
8 2 4 7 1 6 5 3
5 6 1 4 8 2 7 3
1
1
1
样例输出 #1
2
0
4
0
提示
In the first test case, members 4 , 5 4, 5 4,5 must have been online between 9:00 and 22:00.
In the second test case, it is possible that nobody has been online between 9:00 and 22:00.
这题的时间复杂度允许使用双指针的方法。
看到这道题会很自然的想到两种方法,一个是根据第一次看见的信息去推,另一个是根据第二次看见的信息去倒推。
那么对于两种方法都是去比较另一个序列里存在的和自己的公共子序列的长度,然后余下的就是顺序变化的。
然而对于从前往后推,如果使用双指针的方法,那么就会导致错误,例如以下样例:
2
2 1 3
2 3 1
如果根据从前往后推的方式,是无法正常判断出到底有多少元素变动了。
所以我们采取从后往前推的方式。
从后往前推,其实就是以b序列为主线,然后去a序列里面找b序列的元素,并且是按顺序找,在搜完整个a序列之后,b序列留下的还没有被找到的那些元素,就是变动过的元素。
为什么要这样找 ?
在这里,我们必须要保证按照b序列元素的顺序找,只要模拟一下就可以明了。
对于以上给出的样例:
2
2 1 3
2 3 1
我们凭借人类的思维去判断这里有两个元素的思路就是:发现了3移动到了1的前面,又因为2在3的前面,所以2和3一定都变动了。
那么如果两个序列是这样的
1 2 3
3 1 2
我们就会说只有一个序列变化了,因为只有3变动到了1 2这个连续子串的前面。
所以就是如此的思路。 (数学的思路不会证明)
CODE:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;int a[N];
int b[N];
int n;void solve(){cin >> n;for(int i = 1;i <= n;i++)cin >> a[i];for(int i = 1;i <= n;i++)cin >> b[i];int pA = n,pB = n;while(pA >= 1 && pB >= 1){while(a[pA] != b[pB] && pA >= 1)pA--;if(pA >= 1)pB--; //这里要不超出边界的时候才去减,不然会减多}cout << pB << endl;
}int main(){int T;cin >> T;while(T--){solve();}return 0;
}
相关文章:
SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
Beppa and SwerChat 题面翻译 B和她的怪胎朋友在某个社交软件上的聊天群聊天。 这个聊天群有包括B在内的n名成员,每个成员都有自己从1-n的独特id。 最近使用这个聊天群的成员将会在列表最上方,接下来较次使用聊天软件的成员将会在列表第二名࿰…...
四川汇昌联信:拼多多运营属于什么行业?
拼多多运营属于什么行业?这个问题看似简单,实则涉及到了电商行业的深层次理解。拼多多运营,顾名思义,就是在拼多多这个电商平台上进行商品销售、推广、客户服务等一系列活动。那么,这个行业具体包含哪些内容呢?下面就从四个不同…...
C++11 特性
总结 语法糖: 关键字: auto、decltype。nullptr。override、final。constexpr。语法: 基于范围的 for 循环。function 函数对象。 lambda 产生函数对象。bind 产生函数对象。目的:写代码更便捷、更严谨,让编译器做更多的事情。STL 容器: array。forward_list。unordered_…...
二、使用插件一键安装HybridCLR
预告 本专栏将介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用。 专栏: Unity开发AR系列 插件简介 通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。 热更方案 基于Hybri…...
【江科大STM32学习笔记】新建工程
1.建立工程文件夹,Keil中新建工程,选择型号 2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹 为添加工程文件准备,建文件夹是因为文件比较多需要分类管理,需要用到的文件一定要复…...
C++小程序:同一路由器下两台计算机简单通信(1/2)——服务器端
同一路由器下两台电脑如何进行通信呢?这里通过小程序实例的方式介绍SOCKET结构体以及相关函数的使用。计算机通信是在服务器端与客户端之间进行,这里先介绍服务器端程序。 我这里编辑编译软件是VS2022,使用C空项目进行编程。在介绍程序…...
EditReady for Mac激活版:专业视频转码工具
对于视频专业人员来说,一款高效的视频转码工具是不可或缺的。EditReady for Mac正是这样一款强大的工具,它拥有简洁直观的操作界面和强大的功能,让您的视频处理工作事半功倍。 EditReady for Mac支持多种视频格式的转码,并且支持常…...
Android app通过jcifs-ng实现Samba连接共享文件夹
Android端使用Samba连接共享文件夹,下载或上传文件的功能实现。如果你是用jcifs工具包,那么你要注意jcifs-ng 和 jcifs 支持的SMB版本区别。 JCIFS-NG的github地址 JCIFS官网地址 这里有关于jciffs、jcifs-codelibs、jcifs-ng、smbj的详细介绍 对比 支…...
linux开发笔记(buildroot打包镜像)
参考文章:https://www.cnblogs.com/arnoldlu/p/9553995.html mangopi_r3的buildroot在编译完成后会将所有镜像打包到一起。与之有关的buildroot配置项为 BR2_ROOTFS_POST_IMAGE_SCRIPT"board/allwinner/generic/scripts/genimage.sh" genimage.sh内容如下 #!/bin…...
预编码算法学习笔记
预编码算法是无线通信系统中的一项关键技术,它能够在发送端对信号进行处理,以提高系统的可靠性和频谱效率。以下是关于预编码算法的详细学习笔记。 1. 引言 在无线通信系统中,由于存在多径效应、信号衰减以及干扰等因素,接收到的…...
2024OD机试卷-最长子字符串的长度(一) (java\python\c++)
题目:最长子字符串的长度(一) 题目描述 给你一个字符串 s,首尾相连成一个环形,请你在环中找出 ‘o’ 字符出现了偶数次最长 子字符串 的长度。 输入描述 输入是一个小写字母组成的字符串 输出描述 输出是一个整数 用例1 输入 alolobo 输出 6 用例2 输入 looxdolx …...
docker 部署并运行一个微服务
要将微服务部署并运行在Docker容器中,你需要按照以下步骤操作: 编写Dockerfile:在项目根目录下创建一个名为Dockerfile的文件,并添加以下内容: # 使用一个基础的Docker镜像 FROM docker-image# 将项目文件复制到容器…...
Hive on Tez 作业优化参数
常用参数 参数名 参数说明 默认值 所在配置文件 关联问题 hive.tez.container.size Tez AppMaster向RM申请的container大小 -(单位:MB) hive-site.xml OOM tez.runtime.io.sort.mb 这个参数设定了 Tez 运行排序操作时可用的最大内存。排序操作的内存大小也会影响到排序的效率…...
flink mysql数据表同步API CDC
概述: CDC简介 Change Data Capture API CDC同步数据代码 package com.yclxiao.flinkcdcdemo.api;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.ververica.cdc.connectors.mysql.source.MySqlSource; import com.verv…...
AI大模型探索之路-训练篇21:Llama2微调实战-LoRA技术微调步骤详解
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...
如何使用client-go构建pod web shell
代码示例及原理 原理是利用websocket协议实现对pod的exec登录,利用client-go构造与远程apiserver的长连接,将对pod容器的输入和pod容器的输出重定向到我们的io方法中,从而实现浏览器端的虚拟终端的效果消息体结构如下 type Connection stru…...
AI工具摸索-关于写作(1)
虽然人工智能工具非常多,但是如果想要成为生产力,能达标的工具仍然非常少,除了最常用的chatgpt,其他的工具真的能达标吗,这篇文章主要就是对比市面上的一些工具, 但我这个人非常执拗,我认为作为生产力工具的功能必然是可以真正帮助我们的,而不是说作为一个写作工具结…...
昂科烧录器支持O2Micro凹凸科技的电池组管理IC OZ7708
芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中O2Micro凹凸科技的电池组管理IC OZ7708已经被昂科的通用烧录平台AP8000所支持。 OZ7708是一款高度集成、低成本的电池组管理IC,适用于5~8s Li-Ion/Polymer电池组&a…...
Spring Cloud Gateway详解
文章目录 Gateway搭建路由(route)断言(Predicate )自定义断言 过滤器(filter)自定义全局过滤器 引言 在传统的单体项目中,前端和后端的交互相对简单,只需通过一个调用地址即可实现。…...
信息系统项目管理师0103:初步可行性研究(7项目立项管理—7.2项目可行性研究—7.2.2初步可行性研究)
点击查看专栏目录 文章目录 7.2.2初步可行性研究1.初步可行性研究定义2.辅助研究的目的和作用3.初步可行性研究的作用4.初步可行性研究的主要内容记忆要点总结7.2.2初步可行性研究 1.初步可行性研究定义 初步可行性研究一般是在对市场或者客户情况进行调查后,对项目进行的初步…...
新手PM如何快速成长?一套可落地的自我迭代复盘方法
新手 PM 想快速成长,不能只靠多做几个项目,更要学会从每个项目里复盘经验、发现问题、沉淀方法。尤其是从市场、运营、业务等岗位转型做项目经理的人,更需要通过复盘提升需求管理、进度管理和团队协作能力。本文分享一套适合项目经理新人的自…...
Word怎么转PDF?2026年各类场景转换方法对比指南
Word文档转换成PDF格式已成为办公日常的标配需求。无论是制作正式报告、投递简历、还是与他人共享文件,PDF格式都因其兼容性强、排版稳定的特点成为首选。本文整理了2026年最实用的Word转PDF官方方法和各类转换工具,帮你快速找到适合自己的转换方案。Wor…...
手把手改造libmad:将一次性加载改为流式解码,拯救你的内存不足嵌入式系统
嵌入式音频革命:libmad流式解码改造实战指南 在资源受限的嵌入式环境中处理MP3音频,就像试图用吸管喝光整个游泳池的水——传统的一次性加载方式会让你的系统瞬间窒息。当树莓派Pico这类微控制器只有264KB的RAM时,一个5MB的MP3文件就能让内存…...
终极Xbox手柄性能检测指南:5个技巧让你的游戏控制器发挥最大潜力
终极Xbox手柄性能检测指南:5个技巧让你的游戏控制器发挥最大潜力 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest 你是否曾经在激烈游戏对战中感觉手柄响应不够灵…...
DouZero AI斗地主助手:基于深度学习的终极实战指南
DouZero AI斗地主助手:基于深度学习的终极实战指南 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 还在为欢乐斗地主的复杂决策而烦恼吗?…...
深入Delphi二进制世界:用IDR揭开编译代码的神秘面纱
深入Delphi二进制世界:用IDR揭开编译代码的神秘面纱 【免费下载链接】IDR Interactive Delphi Reconstructor 项目地址: https://gitcode.com/gh_mirrors/id/IDR 你是否曾经面对一个Delphi编译的程序,却无法理解它的内部逻辑?或者需要…...
Label Studio终极指南:高效构建多模态数据标注平台
Label Studio终极指南:高效构建多模态数据标注平台 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio 在人…...
UnityPackage Extractor终极指南:快速提取Unity资源包的免费工具
UnityPackage Extractor终极指南:快速提取Unity资源包的免费工具 【免费下载链接】unitypackage_extractor Extract a .unitypackage, with or without Python 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_extractor 在Unity开发工作流中&…...
别再死记硬背了!用Verilog/SystemVerilog手把手教你理解Decoder、Mux和Selector的电路本质
从Verilog代码反推Decoder与Mux的硬件本质:写给会看电路图但写不出代码的工程师 当你第一次在教科书上看到2-4解码器的门级电路图时,是否觉得那些与门排列得像积木一样整齐?但当你打开编辑器准备用Verilog实现时,却发现大脑一片空…...
drf-nested-routers测试指南:确保嵌套路由稳定性的完整方案
drf-nested-routers测试指南:确保嵌套路由稳定性的完整方案 【免费下载链接】drf-nested-routers Nested Routers for Django Rest Framework 项目地址: https://gitcode.com/gh_mirrors/dr/drf-nested-routers drf-nested-routers是Django Rest Framework的…...
