码蹄集2023部分题目

1🐋🐋🐋MC0204世界警察(黄金;双指针)

时间限制:4秒

占用内存:1024M

🐟题目描述

世界警察小码哥来谈判了,恐怖分子在银行挟持了 n 个人质,每个人质都所属一个国家,第 i 个人质所属的国家为 ci,人质排成了一排,位置都是固定的。经过商讨,恐怖分子允许小码哥可以带走任意一段连续区间内的人质。但是上级要求小码哥,最好每个国家的人质都带回来一个,不希望人质中有重复的国家。请问小码哥最多可以带出来多少人质。

🐟输入输出格式

输入格式:
第一行一个正整数 n,表示共有 n 个人质;
第二行共有 n 个正整数,第 i 个正整数表示第 i 个人质的所属国家 ci。
​
输出格式:
一个整数表示小码哥最多可以带出来的人质数

🐟样例

🐚样例

输入:
5
1 1 2 3 4
​
输出:
4

🐚备注

其中:1≤n≤10^6;0≤ci≤10^9。

🐟题目思路

这道题目是典型的双指针区间问题,关键点在于如何发现重复数字以及如何处理重复数字:

  • 使用map的find功能查找该数字是否已存在;

  • 如果存在,那么结果区间只有两种情况:包含上一个和包含这一个。现在的情况就是包括上一个的情况,那么就直接判断长度;包含这一个(也就是现在右指针遇到的这个)的情况,那么该段的初始位置就是上一个该数字的下一个位置(+1)

⭐这里注意一点,也就是4的制胜点:在包含这一个的情况下,要额外判断这一个数是否已被放入到map当中。

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
​
int main( )
{long long n;cin>>n;if(n==1) cout<<1<<endl;long long l=0,r=0;long long c;vector<long long> a;map<long long,long long> cur;int flag=0;for(long long i=0;i<n;i++) {cin>>c;a.push_back(c);if(c!=a[0]) flag=1;}if(flag==0) cout<<1<<endl;cur.insert({a[0],0});long long ans=1;for(long long i=1;i<n;i++){auto it=cur.find(a[i]);if(it==cur.end()) {r++;cur.insert({a[i],i});}else{ans=max(ans,r-l+1);for(long long j=l;j<=it->second;j++) cur.erase(a[j]);l=it->second+1;if(cur.find(a[i])==cur.end()) cur.insert({a[i],i});//4的制胜点r++;}}ans=max(ans,r-l+1);cout<<ans<<endl;return 0;
}

2🐋🐋🐋MC0206小码哥的英语(白银;普通循环)

时间限制:1秒

占用内存:256M

🐟题目描述

小码哥在做英语单选题的时候突然想到了一个很有意思的问题:单选题的答案都是A或者B,那么很多道题目的答案组成的就是一个A和B组成的字符串。如果两个相邻的题目的答案是相同的,小码哥就可以修改这两个题目的答案,改成都是A、都是B或者一个是A另外一个是B,小码哥把这个定义为一次操作。那么对于任意一个答案字符串,最少需要多少次操作,才能使得它满足:任意相邻的题目的答案都不同。

🐟输入输出格式

输入格式:
第一行包含一个数字 n (1≤n≤1000),表示字符串的个数;
后面的 n 行,每一行表示一个长度为L(1≤L≤10000)的,由字符A和B随机组成的字符串。
​
输出格式:
输出有多行,每一行表示对应字符串需要的最少的操作次数T(0≤T≤10000)。

🐟样例

输入:
2
AAABAB
AABBBAB
​
输出:
1
2

🐟题目思路

乍一看这道题目,我以为是模拟过程,遇到两个相同的或三个相同的记为1,但是发现不对,一个点也过不了。后来受到forward—backward思想的启发,既然最后达到的状态是相邻两个字母不同,那么就只有两种可能:ABABAB和BABABA。基于此,我们只需要遍历字符串,然后和标准答案对比即可知道要做几次操作了。

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
​
int main( )
{int n;cin>>n;string s;int ans1,ans2;for(int k=0;k<n;k++){cin>>s;ans1=0;ans2=0;for(int i=0;i<s.size();i++){if(i%2==0&&s[i]!='A') ans1++;if(i%2==1&&s[i]!='B') ans1++;if(i%2==0&&s[i]!='B') ans2++;if(i%2==1&&s[i]!='A') ans2++;}cout<<min(ans1,ans2)<<endl;}return 0;
}

3🐋🐋🐋MC0207中转站(黄金;简易版DFS)

时间限制:1秒

占用内存:256M

🐟题目描述

物流业为了降低物流成本,提高物流效率,运输过程中通常不会由始发地直达目的地,而是经由多个中转站中转,最终到达目的地。最常见的便是快递业,由于中转站有很多,要想将所有中转站两两互通代价过高,因此每个中转站只会与个别中转站单向或双向连通。

在接受订单时,为了判断该物件能否送达,会先查询本站是否能直接送达目的地站点;若不能,则递归查询本站可达中转站,以及中转站的中转站能否送达,直至找出目的地或找遍全部中转站。

🐟输入输出格式

输入格式:
第一行输入两个正整数 n,m,n 是整个物流网所有中转站的数目,小码哥所在的站点是 1 号,目的地的站点是 n 号;
接下来的 m 行,每行输入两个正整数 x,y,代表中转站 x 可以送往中转站 y。
​
输出格式:
如果物件能够送达,输出”Yes”,否则输出”No”。

🐟样例

🐚样例1

输入:
5 5
1 3
2 3
3 4
2 4
4 5
​
输出:
Yes

🐚样例2

输入:
4 3
1 2
2 3
4 1
​
输出:
No

🐚备注

其中:1<n≤500,1<m≤20000,1≤x,y≤n

🐟题目思路

题目很明显是想让我们用图遍历,这里主要是DFS深度优先遍历。但是DFS挺麻烦的(主要是我不太会😂),所以考虑一些更简单的方法。一个思路是,模拟DFS的过程,但是不使用迭代的方法:用数组p记录某一个点能否到达,也就是说,输入cur和next,如果p[cur]==1,那么意味着之前有路径能到达cur,那么自然p[next]就可以置为1了,意味着有路径可以到达next这一节点。

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
​
int main( )
{int n,m;cin>>n>>m;vector<int> p(n+1,0);int cur,next;cin>>cur>>next;p[cur]=1;p[next]=1;m--;for(int i=0;i<m;i++){cin>>cur>>next;if(p[cur]==1) p[next]=1;}if(p[n]==1) cout<<"Yes"<<endl;else cout<<"No"<<endl;return 0;
}

4🐋🐋🐋MC0210安全验证(钻石;KMP算法)

时间限制:1秒

占用内存:256M

🐟题目描述

小码哥是一名密码学专家,一天他的朋友拜托他设计一个简单的标识验证程序,用于服务器安全验证。

小码哥答应了朋友的请求,设计了一个简单的标识验证方法。服务器会自带一个安全标识串 S,每隔一段时间会自动更新,客户端的每次请求都会先收到服务器的标识串,然后在下一次更新前需要找出 S 中的一个真子串 T,满足既是 S 的前后缀,又在 S 中出现至少一次的最长串,找到后才能正常与服务器交互。

小码哥虽然精通密码学,但对开发一窍不通,于是找到了你,希望你能协助他完成程序开发环节。

🐟输入输出格式

输入格式:
一个字符串 SS,全部是小写字母。
​
输出格式:
满足条件的最长真子串 TT,如果没有就输出”No”。

🐟样例

🐚样例1

输入:
fixprefixsuffix
​
输出:
fix

🐚样例2

输入:
abcdabc
​
输出:
No

🐚备注

其中:3≤∣S∣≤10^6

🐟题目思路

题目给了比较明显的提示:最长前后缀。具体前后缀的介绍可以看我之前的一篇leetcode的内容:

⭐每天一道leetcode:28.找出字符串中第一个匹配项的下标(简单;暴力解;KMP算法,有难度)-CSDN博客

这道题目的思路就是:在KMP算法计算出前缀数组的基础上,判断除去前后缀部分的字符串是否仍包含这样至少一个前缀,如果是的那么输出这个前缀ans,否则输出No。这里判断是否包含,我是用了暴力求解的方法,也就是使用substr函数截取以i位置为起点的与ans等长度的子字符串,然后判断是否与ans相等。

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
​
int main( )
{string s;cin>>s;vector<int> pi(s.size());for(int i=1,j=0;i<s.size();i++) //求s的前缀函数{while(j>0&&s[i]!=s[j]) {j=pi[j-1];}if(s[i]==s[j]) j++;pi[i]=j;}string ans;//判断除了前后缀,中间部分是否还至少有一个前缀if(pi[s.size()-1]==0) cout<<"No"<<endl;else{for(int i=0;i<pi[s.size()-1];i++) ans+=s[i];if(s.size()-2*pi[s.size()-1]<pi[s.size()-1]) cout<<"No"<<endl;else {for(int i=pi[s.size()-1]-1;i<s.size()-pi[s.size()-1];i++){if(s.substr(i,ans.size())==ans) {cout<<ans<<endl;return 0;//这里要用return,如果用break,后边那个No也会被输出出来;或者可以用break加一个flag标记一下}}cout<<"No"<<endl;}}return 0;
}

⭐点赞收藏不迷路~

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

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

相关文章

Docker-安装

Docker ⛅Docker-安装&#x1f320;各平台支持情况&#x1f320;Server 版本安装☃️Ubuntu☃️Centos &#x1f320;Docker 镜像源修改&#x1f320;Docker 目录修改 ⛅Docker-安装 &#x1f320;各平台支持情况 &#x1f320;Server 版本安装 ☃️Ubuntu &#x1f342;安装…

LiveGBS流媒体平台GB/T28181功能-HTTPS 服务支持配置开启什么时候需要开启HTTPS测试SSL证书配置HTTPS测试证书

LiveGBS功能支持HTTPS 服务支持配置开启什么时候需要开启HTTPS测试SSL证书配置HTTPS测试证书 1、配置开启HTTPS1.1、准备https证书1.1.1、选择Nginx类型证书下载 1.2、配置 LiveCMS 开启 HTTPS1.2.1 web页面配置1.2.2 配置文件配置 2、HTTPS测试证书3、验证HTTPS服务4、为什么要…

Visual Studio 2013 - 清理

Visual Studio 2013 - 清理 1. 清理1.1. 工程清理1.2. 解决方案清理 References 1. 清理 Debug Release 1.1. 工程清理 (right mouse click on the project) -> 清理 1.2. 解决方案清理 (right mouse click on the solution) -> 清理解决方案 References [1] Yongq…

Vue技能树总结01

Vue vs React 相似之处: 它们都有使用 Virtual DOM&#xff1b;提供了响应式&#xff08;Reactive&#xff09;和组件化&#xff08;Composable&#xff09;的视图组件。将注意力集中保持在核心库&#xff0c;而将其他功能如路由和全局状态管理交给相关的库。React 比 Vue 有更…

记录C++中,子类同名属性并不能完全覆盖父类属性的问题

问题代码&#xff1a; 首先看一段代码&#xff1a;很简单&#xff0c;就是BBB继承自AAA&#xff0c;然后BBB重写定义了同名属性&#xff0c;然后调用父类AAA的打印函数&#xff1a; #include <iostream> using namespace std;class AAA { public:AAA() {}~AAA() {}void …

什么是Spring Boot

什么是Spring Boot Spring Boot是一个由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring Boot致力于…

网络货运平台有哪些

网络货运平台有运满满、货拉拉、快狗打车、滴滴货运、货运宝、G7、货骑士、云鸟配送、积微物联、中储智运等。 运满满 运满满创立于2013年&#xff0c;是国内首家基于云计算、大数据、移动互联网和人工智能技术开发的货运调度平台&#xff0c;是公路物流领域高新技术综合应用…

C++ 命名空间的定义,及使用

命名空间 C中什么是命名空间&#xff1f; &#xff08;个人理解&#xff0c;仅供参考&#xff09; 就像C本身中面向对象中的类&#xff0c;是一个相对封闭的结构&#xff0c;将具有某一特定属性的数据、函数、类对象等归为一类放置在该空间内&#xff0c;这个应该是命名空间…

线性代数基础概念和在AI中的应用

基本概念 线性代数是数学的一个分支&#xff0c;专注于向量、向量空间&#xff08;也称为线性空间&#xff09;、线性变换和矩阵的研究。这些概念在数据科学、人工智能、工程学和物理学等多个领域都有广泛应用。以下是这些基本概念的详细解释和它们在数据处理和AI中的应用。 …

开发微信小程序被鹅厂背刺

最近在开发微信小程序&#xff0c;没来得及更文。等开发完成后&#xff0c;给大家写保姆帖系列。刚刚看到一张动图&#xff0c;忍不住分享给大家。属实反映了鹅厂风格了。

PX4|基于FAST-LIO mid360的无人机室内自主定位及定点悬停

目录 前言环境配置运行fast-lio修改px4位置信息融合方式编写位置坐标转换及传输节点 前言 在配置mid360运行环境后&#xff0c;可使用mid360进行室内的精准定位。 环境配置 在livox_ros_driver2的上级目录src下保存fast-lio的工程 git clone https://github.com/hku-mars/F…

python问题:vscode切换环境,pip安装库网络错误,不使用anaconda安装库

python问题&#xff1a;vscode切换环境&#xff0c;pip安装库网络错误 vscode切换环境pip安装库网络错误 不使用anaconda安装库 记录一下遇见的python问题。 vscode切换环境 在vscode上面的搜索框输入 > select interpreter然后选择需要的环境。 pip安装库网络错误 用…

前端小白的学习之路(lessscss)

提示&#xff1a;less,sass&scss 目录 一、less 1.变量 2.嵌套规则 3.混合 4.针对属性值进行操作的函数 5.循环 6.拓展语法 二、scss&sass 1.sass 2.scss 一、less 是一个开源的、基于 CSS 的预处理器&#xff0c;它使得编写和维护 CSS 更加简单和高效。通…

web前端之多种方式实现switch滑块功能、动态设置css变量、after伪元素、选择器、has伪类

MENU 效果图htmlcsshtmlcssJS 效果图 htmlcss html <div class"s"><input type"checkbox" id"si" class"si"><label for"si" class"sl"></label> </div>style * {margin: 0;pad…

refreactive vue3

ref 可以定义:基本类型、对象类型的响应式数据 reactive 只能定义:对象类型的响应式数据 <template><div class"person"><h2>Name: {{ name }}</h2><h2>Age: {{ age }}</h2><h2>Tel: {{ tel }}</h2><button cl…

lftp服务与http服务(包含scp服务)详解

目录 前言: 1.lftp服务 1.1lftp服务的介绍以及应用场景 1.2安装lftp服务 1.2进行配置 1.3实际操作 2.http服务 2.1http服务介绍以及应用场景 2.1安装httpd服务 2.2进行配置 2.3实际操作 3.scp服务 3.1scp服务的介绍以及应用场景 致谢: 前言: 在当今互联网…

蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块

AT24C02——就是一个存储的东西&#xff0c;可以给他写东西&#xff0c;掉电不丢失。 void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num) {IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(nu…

arm 解决Rk1126 画框颜色变色问题(RGB转NV12)

在Rv1126上直接对Nv12图像进行绘制时&#xff0c;颜色是灰色。故将Nv12转BGR后绘制图像&#xff0c;绘制完成后转成Nv12&#xff0c;BGR的图像颜色是正常的&#xff0c;但是NV12的图像颜色未画全&#xff0c;如图&#xff1a; 1.排查发现是RGB转NV12的函数出现问题&#xff0c…

理清大数据技术与架构

大数据并不是一个系统软件&#xff0c;更不是一个单一的软件&#xff0c;它实际上是一种技术体系、一种数据处理方法&#xff0c;甚至可以说是一个服务平台。在这个技术体系中&#xff0c;涵盖了许多不同的部件&#xff0c;比如Hadoop服务平台。这一服务平台可以根据具体情况自…

微软AI系列 C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度

在C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度。你可以使用.NET中的深度学习库如TensorFlow.NET来加载预训练模型&#xff0c;提取特征&#xff0c;并进行相似度计算。 以下是一个使用TensorFlow.NET的示例&#xff1a; using System; using …