链接:https://www.nowcoder.net/acm/contest/13/E
来源:牛客网

题目描述

????是一名狙击手,凭借肉眼视觉可以做到精确命中绝对半径2051公尺的一切目标。
作为一名优秀的狙击手,????不仅经常保养枪支,也经常保养弹药。
????有?枚子弹,第?枚的型号为??,????打算扔掉其中最多?枚。
大多数优秀的狙击手都有艺术癖好,????希望扔掉一部分子弹后,最
长的连续相同子弹序列的长度尽量长。

输入描述:

第一行,两个整数?,?。第二行,?个正整数?

?

输出描述:

一行,一个整数,最长的连续相同子弹序列的长度。
示例1

输入

8 1
1 1 1 2 2 3 2 2

输出

4

备注

对于10%的数据,? ≤ 10。

对于30%的数据,? ≤ 1000。

对于60%的数据,?? ≤ 30。

对于100%的数据,0 ≤ ? ≤ ? ≤ 10^5,1 ≤ ?? ≤ 10^9。

题解

每一种数字分开考虑,每个枚举答案以哪个位置为结尾,二分一下起点就可以了。

#include<bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 10;
int a[maxn], b[maxn];
int n, k;
vector<int> g[maxn];int lsh(int x) {int L = 1, R = n;while(L <= R) {int mid = (L + R) / 2;if(b[mid] > x) R = mid - 1;else if(b[mid] < x) L = mid + 1;else return mid;}return 0;
}int main() {scanf("%d%d", &n, &k);for(int i = 1; i <= n; i ++) {scanf("%d", &a[i]);b[i] = a[i];}sort(b + 1, b + 1 + n);for(int i = 1; i <= n; i ++) {a[i] = lsh(a[i]);}for(int i = 1; i <= n; i ++) {g[a[i]].push_back(i);}int ans = 1;for(int i = 1; i <= n; i ++) {if(g[i].size() <= 1) continue;for(int j = 1; j < g[i].size(); j ++) {int L = 0, R = j, p = j;while(L <= R) {int mid = (L + R) / 2;if((g[i][j] - g[i][mid] + 1) - (j - mid + 1) <= k) {p = mid;R = mid - 1;} else {L = mid + 1;}}ans = max(ans, j - p + 1);}}printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/zufezzt/p/8412905.html

牛客练习赛3 E - 绝对半径2051相关推荐

  1. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  2. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  4. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  5. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  6. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  7. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  8. 妄想集合(牛客练习赛90)

    妄想集合(牛客练习赛90) 题意: 开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作. Quant l r x\text{Quant l r x}Quant l r x:往编号在 ...

  9. 踩不出足迹(牛客练习赛88 )

    踩不出足迹(牛客练习赛88 ) 题意: 长度为n的数组a,每个数是一个k位二进制 定义一下操作: 令第一次得到的结果为 a1a_1a1​.你需要从第二个数开始,每次可以选择与上一次得到的结果异或或者同 ...

最新文章

  1. Juniper SRX IPsec *** base route CLI
  2. 闯荡北京卖枣的临县人:同有一个“红枣美梦”(2张)
  3. lower_bound和upper_bound算法
  4. 【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态
  5. windows副本不是正版怎么办_盗版系统总是崩溃?别着急,让我来告诉你正版系统怎么下载...
  6. 不恢复余数除法原理_《有余数的除法》教案
  7. Runtime.getRuntime().exec()----记录日志案例
  8. linux fuse文件系统在 android fuse sdcard的 运用
  9. 说说低功耗的那些事儿
  10. p12文件和mobileprovision文件导入到xcode如何使用
  11. linux 下载hbase源码,linux上安装hbase(示例代码)
  12. CentOS虚拟机根分区磁盘扩容操作
  13. 玩转Linux的下Ip计算器(图文)
  14. 程序员因工资低拒绝offer,HR:估计你一辈子就是个程序员
  15. css设置overflow:hiden行内元素会发生偏移的现象
  16. PaddleX---Mask RCNN实例分割
  17. 辽宁省冰雪旅游发展现状及开发策略分析
  18. 米家APP又崩了,智能家居还可靠吗?
  19. javascript的ES6笔记整理
  20. vue集成echarts 绘制中国地图

热门文章

  1. 20145240《信息安全系统设计基础》第十二周学习总结
  2. Ubuntu安装、使用postgresql数据库
  3. Python模块filecmp 文件比较
  4. 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)
  5. Sth about Haml
  6. 肏蛋的Loadrunner脚本
  7. 算法之最近最少使用LRU
  8. 汉得宣布开源:基于容器的企业级应用 PaaS 平台
  9. 加密界又一响声:WhatsApp宣布对所有通讯信息进行端到端加密
  10. 还在为论文发愁?ACL组委会手把手教你论文投稿小技巧 | ACL 2017