-
A - Longest k-Good Segment
- CodeForces - 616D
- 题意:寻找一个保持有k个不同的数字但是长度最长的序列
-
#include <bits/stdc++.h> using namespace std; #define maxn 1000006 int vis[maxn],b[maxn]; int n,k,ansl,ansr; int main() { cin>>n>>k; int j=0,num=0,maxx=0; for(int i=1; i<=n; i++) { cin>>b[i]; if(!vis[b[i]]) { vis[b[i]]++; num++; if(num>k) { for(j=j+1; j<i; j++) { vis[b[j]]--; if(vis[b[j]] == 0) { break; } } num--; } } else vis[b[i]]++; if(i-j>maxx) { maxx =i-j; ansl=j; ansr=i; } } cout<<ansl+1<<" "<<ansr<<endl; return 0; }
A - Longest k-Good Segment-尺取
最新推荐文章于 2019-07-04 12:45:41 发布