UVa 11572 唯一的雪花
Posted 谦谦君子,陌上其华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 11572 唯一的雪花相关的知识,希望对你有一定的参考价值。
https://vjudge.net/problem/UVA-11572
题意:输入一个长度为n的序列A,找到一个尽量长的连续子序列,使得该序列中没有相同的元素。
思路:很简单的题,也没啥好解释的了。
#include<iostream> #include<set> using namespace std; const int maxn = 1000000 + 5; int a[maxn]; int n; int maxd; void solve() { set<int> num; int L = 0, R = 0; maxd = 0; int ans = 0; while (R < n) { if (!num.count(a[R])) { ans++; num.insert(a[R]); R++; if (ans>maxd) maxd = ans; } else { num.erase(a[L]); ans--; L++; } } } int main() { //freopen("D:\\txt.txt", "r", stdin); int t; cin >> t; while (t--) { cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } solve(); cout << maxd << endl; } return 0; }
以上是关于UVa 11572 唯一的雪花的主要内容,如果未能解决你的问题,请参考以下文章
UVa 11572 Unique Snowflakes 算法分析
(白书训练计划)UVa 11572 Unique Snowflakes(窗体滑动法)