当前位置:网站首页>7-2 乒乓人训练大师(双指针)
7-2 乒乓人训练大师(双指针)
2022-08-10 18:23:00 【一条小小yu】
在一片古老的大陆上,生活着一群乒乓人。作为一个古老的种族,乒乓人的族群中保存着 m 种不同的种族天赋。传说在上古时期,存在着兼具所有种族天赋的超级乒乓人:他们具有着御气飞行、移山填海的强大能力。然而,在漫长的时间中,超级乒乓人的能力渐渐被分化、稀释。如今,每一个现存的乒乓人最多只具有一种种族天赋。
小 M 是一名乒乓人训练大师,她的目标是让超级乒乓人重见天日。为了达成这个目标,她对 n 名乒乓人展开了训练,其中第 i 名乒乓人初始的种族天赋为 ai。在训练时,这些乒乓人按照编号 1 到 n 的顺序站成一排。接着,小 M 会对他们使用赋值天赋的能力。具体来说,每次使用能力的时候,小 M 都可以指定两名相邻的乒乓人 (i,j)(∣i−j∣=1),并将第 i 名乒乓人具有的全部天赋复制给第 j 名乒乓人。(注意:第 i 名乒乓人的天赋并不会发生变化)
小 M 的目标是让所有的 n 名乒乓人都成为超级乒乓人,即对于任意的 i∈{1,…,n},j∈{1,…,m},第 i 名乒乓人都具有种族天赋 j。现在,小 M 想让你帮忙计算,她最少发动多少次能力才能达成这个目标。
输入格式:
第一行输入两个整数 n,m(2≤n≤3×105,2≤m≤3×105),表示乒乓人数量和种族天赋的数量。
第二行输入 n 个空格隔开的整数 a1,…,an(1≤ai≤m),其中 ai 表示第 i 名乒乓人初始时具有的种族天赋。
输入保证每一个种族天赋都会出现,即 ∀j∈{1,…,m},∃i∈{1,…,n},ai=j。
输出格式:
输出一行一个整数,表示小 M 最少需要发动多少次能力。
输入样例1:
4 2
1 2 1 2
输出样例1:
4
输入样例2:
10 5
1 4 2 5 3 2 3 5 1 2
输出样例2:
13
代码长度限制
100 KB
时间限制
2000 ms
内存限制
512 MB
#include <bits/stdc++.h>
typedef long long ll;
typedef double db;
using namespace std;
const int N = 3e5 + 10;
int a[N],n,m;
int c[N],cnt;
signed main()
{
ios :: sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for(int i=1; i<=n; i++)
{
cin >> a[i];
}
int res = INT_MAX;
for(int l=1,i=1; i<=n; i++)
{
if(++c[a[i]] == 1) cnt ++ ;
while(l <= i && cnt == m)
{
res = min(res,i - l + 1);
// cout << i << " " << l << endl;
if(--c[a[l]] == 0) cnt -- ;
l ++ ;
}
}
cout << res + n - 2 << endl;
return 0;
}
边栏推荐
- 【FAQ】【Push Kit】推送服务,回执配置一直报错、回执过期修改、怎么删除配置的回执
- 组合模式
- stm32中的CAN通讯列表模式配置解析与源码
- 常量
- eager模式和graph模式 Tensorflow
- #yyds干货盘点# 面试必刷TOP101:二分查找-I
- [JMeter]Beanshell解析Json格式的接口响应数据
- H3C_堆叠(IRF)及链路聚合在项目中的综合应用
- 位算符详解 按位与、或、异或、取反、左移、右移
- redis.exceptions.DataError: Invalid input of type: ‘dict‘. Convert to a byte, string or number first
猜你喜欢
![[Image dehazing] Image dehazing based on color attenuation prior with matlab code](/img/ae/d6d36671804fadae548464496f28d6.png)
[Image dehazing] Image dehazing based on color attenuation prior with matlab code

【2015】【论文笔记】等离子光混合器THz辐射的光谱——

基于 RocksDB 实现高可靠、低时延的 MQTT 数据持久化

Flexsim 发生器设置label和颜色

【HMS core】【FAQ】Analytics Kit、Push Kit典型问题合集3

IoU、GIoU、DIoU、CIoU四种损失函数总结

set和map使用讲解

H3C_堆叠(IRF)及链路聚合在项目中的综合应用

NPDP|传统行业产品经理如何进行能力提升?

postgis空间数据导入及可视化
随机推荐
2022-08-09 学习笔记 day32-IO流
面试题 04.12. 求和路径-dfs+辅助数组法
一颗完整意义的LPWAN SOC无线通信芯片——ASR6601
【深度学习21天学习挑战赛】4、初尝循环神经网络(RNN)——股票预测
API 网关的功能
【FAQ】OpenHarmony与HarmonyOS的有什么区别?
想玩转监控神器Prometheus吗?
Toronto Research Chemicals 双(乙酰丙酮)铂(II)
【2015】【论文笔记】等离子光混合器THz辐射的光谱——
Toronto Research Chemicals BTK甜味剂配方丨D-Abequose
测试接口出现“data“: “Full authentication is required to access this resource“凭证已过期
入门:人脸专集2 | 人脸关键点检测汇总(文末有相关文章链接)
flex&bison系列第一章:flex Hello World
pyspark columns merge into one row
微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理
Toronto Research Chemicals 对乙酰氧基苯乙酮说明书
【HMS core】【FAQ】Account Kit、push Kit典型问题合集1
php7中使用“??”运算符
Thoughts on Technology Sharing
FPGA工程师面试试题集锦91~100