zoukankan      html  css  js  c++  java
  • (白书训练计划)UVa 11572 Unique Snowflakes(窗体滑动法)

    题目地址:UVa 11572

    这样的方法曾经接触过,定义两个指针,不断从左向右滑动,推断指针内的是否符合要求。

    这个题为了能高速推断是否有这个数,能够用STL中的set。

    代码例如以下:

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <stdlib.h>
    #include <math.h>
    #include <ctype.h>
    #include <queue>
    #include <map>
    #include <set>
    #include <algorithm>
    
    using namespace std;
    int a[1100000];
    int main()
    {
        int t, n, l, r, i, max1;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            max1=-1;
            for(i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            l=r=0;
            set<int>q;
            while(r!=n)
            {
                while(q.count(a[r]))
                {
                    q.erase(a[l++]);
                }
                q.insert(a[r++]);
                if(max1<r-l)
                    max1=r-l;
            }
            printf("%d
    ",max1);
        }
        return 0;
    }
    


  • 相关阅读:
    【题解】Candle
    【题解】购物
    【题解】论逼格
    浅谈前缀和
    浅谈 LCA
    浅谈Meet in the middle——MITM
    拓扑排序
    时间复杂度符号
    浅谈排序算法[动图]
    404 页面不存在
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7182701.html
Copyright © 2011-2022 走看看