博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[USACO13JAN] Cow Lineup (单调队列,尺取法)
阅读量:4965 次
发布时间:2019-06-12

本文共 675 字,大约阅读时间需要 2 分钟。

Solution

尺取法板子,算是复习一波.

题中说最多删除 \(k\) 种,那么其实就是找一个颜色种类最多为 \(k+1\) 的区间;
统计一下其中最多的颜色出现次数.
然后直接尺取法,然后每次对于 \(col[r]\) 进行统计,时间复杂度 \(O(n)\) .

Code

#include
using namespace std;const int maxn=100008;int ans;int n,k,col[maxn];map
js;int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) scanf("%d",&col[i]); int now=0,l=1,r=0; while(r<=n) { r++; if(!js[col[r]])now++; js[col[r]]++; while(now==k+2) { js[col[l]]--; if(!js[col[l]])now--; l++; } ans=max(ans,js[col[r]]); } cout<
<

转载于:https://www.cnblogs.com/Kv-Stalin/p/9702870.html

你可能感兴趣的文章
css性质
查看>>
python数据结构
查看>>
正则指引-括号(3)反向引用
查看>>
android开发读书笔记
查看>>
Gitlab配置、备份、升级、迁移
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
android,radio,checkbox
查看>>
[转](.NET Core C#) AES Encryption
查看>>
[转]EntityFramework中常用的数据修改方式
查看>>
[转]SQL Collation冲突解决 临时表
查看>>
[转]Gitlab-CI持续集成之Runner配置和CI脚本
查看>>
Spark&Hive结合起来
查看>>
使用Flex和java servlet上传文件
查看>>
软件工程的实践项目课程的自我目标
查看>>
POJ 1321 棋盘问题 (深搜)
查看>>
自定义TabBar
查看>>
最近戴着眼镜坐电脑前总是不自觉的眼痛就搜了下怎么保护眼睛无意中看到了这篇文章希望广大爱好编程的朋友多注意保护自己的眼睛!!...
查看>>
Eclipse快捷键大全
查看>>