码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 11572 (滑动窗口) Unique Snowflakes

时间:2015-02-06 23:10:45      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

滑动窗口挺有意思的,如果符合条件右端点一直向前走,不符合的话,左端点向前走。

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 set<int> Set;
 5 
 6 const int maxn = 1000000 + 10;
 7 int a[maxn];
 8 
 9 int Scan() {    //输入外挂
10     int res = 0;
11     char ch;
12     while((ch = getchar()) >= 0 && ch <= 9)
13         res = res * 10 + (ch - 0);
14     return res;
15 }
16 
17 int main()
18 {
19     //freopen("in.txt", "r", stdin);
20     int T, n;
21     scanf("%d", &T);
22     while(T--)
23     {
24         Set.clear();
25         scanf("%d", &n); getchar();
26         for(int i = 0; i < n; ++i) a[i] = Scan();
27         int L = 0, R = 0, ans = 0;
28         for(; L < n; ++L)
29         {
30             while(R < n &&!Set.count(a[R])) { Set.insert(a[R]); R++; }
31             ans = max(ans, R - L);
32             if(R == n) break;
33             Set.erase(a[L]);
34         }
35         printf("%d\n", ans);
36     }
37 
38     return 0;
39 }
代码君

 

UVa 11572 (滑动窗口) Unique Snowflakes

标签:

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/4278155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!