poj 3320 尺取法

来源:互联网 发布:郑州php培训哪家好 编辑:程序博客网 时间:2024/04/29 01:13

这道题,用std::ios::sync_with_stdio(false);都超时,非得用scanf();


#include<iostream>#include<cstdio>#include<map>#include<vector>#include<set>using namespace std;int a[1000002];set<int>s;map<int,int>mp;int main(){int n;scanf("%d",&n);int i,j;for(i=0;i<n;i++){scanf("%d",&a[i]);s.insert(a[i]);}int len=s.size();intcot=0; int ans=0x3f3f3f3f;int start=0;j=0;while(1){while(cot<len&&j<n){if(mp[a[j]]==0){cot++;}mp[a[j]]++;j++;}if(cot<len)break;ans=min(ans,j-start);mp[a[start]]--;if(mp[a[start]]==0)cot--;start++;}printf("%d\n",ans);}


0 0