[USACO13JAN] Cow Lineup (单调队列,尺取法)
2024-09-08 09:17:13
题目链接
Solution
尺取法板子,算是复习一波.
题中说最多删除 \(k\) 种,那么其实就是找一个颜色种类最多为 \(k+1\) 的区间;
统计一下其中最多的颜色出现次数.
然后直接尺取法,然后每次对于 \(col[r]\) 进行统计,时间复杂度 \(O(n)\) .
Code
#include<bits/stdc++.h>
using namespace std;
const int maxn=100008;
int ans;
int n,k,col[maxn];
map <int,int>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<<ans<<endl;
}
最新文章
- Ubuntu下的Notepad++:Notepadqq
- delphi Syntax check、 build、 run、 compile的区别
- C#日期格式转换
- zepto阻止事件冒泡
- SqlServer 之 查看表空间
- 网络子系统43_ip选项预处理
- ASIHTTPRequest中的DELETE、PUT、GET、POST请求实例-备用
- javaweb学习路之一--web项目搭建
- DOS批处理中%cd%和%~dp0的区别[forward]
- RxSwift(一)
- 发布core到linux
- 从锅炉工到AI专家(4)
- ApiKernel
- webToImage (网页转图片)模块试用分享
- GTF文件
- Mentor面向智能家居的IoT方案
- MAC使用mysql报错:ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)
- Intorduction of Annotation ,about examples in Hello1.java
- CS229 笔记07
- mysql 日期 字符串 时间戳转换