P3143 钻石收藏家
2022/3/30 23:20:12
本文主要是介绍P3143 钻石收藏家,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
传送门
题目需要求出两段不重合的序列使两段长度和最大。代码关键在于循环变量作为左指针,左右指针之间维护的是第二个序列,而第一个序列在左右指针向前推进的过程中其最大长度被保存下来了。
#include<iostream> #include<algorithm> #define MAXN 50007 using namespace std; int n, pre, len[MAXN], Dio[MAXN], ans, r = 2, k; int main(void) { cin >> n >> k; for (int i = 1; i <= n; i++) cin >> Dio[i]; sort(Dio + 1, Dio + n + 1); for (int l = 1; l <= n; l++) { while (Dio[r] <= Dio[l] + k && r < n + 1) r++; len[r] = max(r - l, len[r]); pre = max(pre, len[l]); ans = max(pre + r - l, ans); } cout << ans; return 0; }
这篇关于P3143 钻石收藏家的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南