Educational Codeforces Round 170 C New Game

思路

滑动窗口

排完序后找左右边界差值小于等于k 的最长子序列长度即可

可以用map去重

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 200010;

int t, n, k;
int a[N], b[N];

void solve()
{
	cin >> n >> k;
	
	for (int i = 1; i <= n; i ++ ) cin >> a[i];
	
	map<int, int> ump;
	
	int tt = 0;
	
	for (int i = 1; i <= n; i ++ )
	{
		if (!ump[a[i]])
		{
			b[tt ++ ] = a[i];
		}
		ump[a[i]] ++;
	}
	
	sort(b, b + tt);
	
	int res = 0;
	int i, j;
	int temp = 0;
	for (i = 0, j = 0; i < tt; i ++ )
	{
		
		j = max(i, j);
		
		if (j == i)
			temp = ump[b[i]];
		else
			temp -= ump[b[i - 1]];
		
		while (j < tt - 1 && b[j] + 1 == b[j + 1] && j - i + 1 < k)
		{
			j ++;
			temp += ump[b[j]];
		}
		res = max(res, temp);
	}
	
	cout << res << endl;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> t;
	while (t -- )
	{
		solve();
	}
}
相关推荐
拔剑纵狂歌7 天前
ClickHouse system.query_log 字段详解与排障实践
后端·clickhouse·1024程序员节
比奥利奥还傲.20 天前
哪吒监控面板实战:部署 Dashboard、接入 Agent、钉钉告警,再配置固定公网访问
网络·人工智能·分布式·1024程序员节
默 语21 天前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
学传打活1 个月前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活1 个月前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng1682 个月前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心2 个月前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055272 个月前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055272 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝2 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节