[BZOJ] [P3028] [Usaco 2013 Jan] [Cow Lineup] [문제 풀이]

667 단어 bzoj
전송 문:http://www.lydsy.com/JudgeOnline/problem.php?id=3048
분명히 같은 두 점 사이 에 k 개 원소 보다 많 으 면 그들 은 연결 할 수 없다
Code:
#include<bits/stdc++.h>
using namespace std;
int n,k,ans;
map<int,int>M;
deque<int>q;
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		int x;scanf("%d",&x);
		M[x]++;q.push_back(x);
		while(M.size()>k+1){
			ans=max(ans,M[q.front()]);
			if(!--M[q.front()])
			M.erase(q.front());
			q.pop_front();
		}ans=max(ans,M[q.front()]);
	}
	while(!q.empty()){
		ans=max(ans,M[q.front()]);
		M[q.front()]--;
		q.pop_front();
	}cout<<ans<<endl;
}

좋은 웹페이지 즐겨찾기