UVA - 11572 Unique Snowflakes

Posted 一入OI深似海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA - 11572 Unique Snowflakes相关的知识,希望对你有一定的参考价值。

/*
STLsort离散化==T
手工sort离散化==T
map在线==T
map离线处理c==A 240ms 
*/
#include<cstdio>
#include<map>
#define maxn 1000010
using namespace std;
int T,n,c[maxn],a[maxn],ans,s,t,num;
map<int,int>p;
int init(){
    int x=0,f=1;char s=getchar();
    while(s<0||s>9){if(s==-)f=-1;s=getchar();}
    while(s>=0&&s<=9){x=x*10+s-0;s=getchar();}
    return x*f;
}
int main()
{
    T=init();
    while(T--){
        n=init();s=1;ans=num=0;p.clear();
        for(int i=1;i<=n;i++){
            a[i]=init();
            if(p[a[i]]==0){
                p[a[i]]=i;c[i]=0;
            }
            else {
                c[i]=p[a[i]];p[a[i]]=i;
            }
        }
        while(1){
            for(t=s;t<=n;t++){
                if(c[t]>=s){
                    s=c[t]+1;c[t]=0;break;
                }
                ans=max(ans,t-s+1);
            }
            if(t>=n)break;
        }
        printf("%d\n",ans);
    }
    return 0;
}

 

以上是关于UVA - 11572 Unique Snowflakes的主要内容,如果未能解决你的问题,请参考以下文章

UVa 11572 - Unique Snowflakes

UVA - 11572 Unique Snowflakes

(白书训练计划)UVa 11572 Unique Snowflakes(窗体滑动法)

Uva11572-Unique Snowflakes(滑动窗口)

UVa 11572 Unique Snowflakes 算法分析

UVa 11572 唯一的雪花