uva 11572 unique snowflakes
2015-03-12 22:25
302 查看
题目大意:输入一个长度为n(n<=10^6)的序列s,找到一个尽量长的连续子序列sl~sr,使得序列中没有相同的元素。
方法:使用set容器中的count,insert,erase三个函数,将序列扫一遍,当前的元素与序列中的元素不相同,就添加进序列,否则,删除序列最左边的元素。
提醒:我是在vjudge上交的题,在hdu交就wa,在uva交就ac,不知道原因,希望大家也不要为此困惑。
AC代码:
方法:使用set容器中的count,insert,erase三个函数,将序列扫一遍,当前的元素与序列中的元素不相同,就添加进序列,否则,删除序列最左边的元素。
提醒:我是在vjudge上交的题,在hdu交就wa,在uva交就ac,不知道原因,希望大家也不要为此困惑。
AC代码:
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<set> using namespace std; int s[1000005]; int main() { int t,ans,l,r,i,n; cin>>t; while(t--) { cin>>n; set<int> a; for(i=0;i<n;i++) { cin>>s[i]; } l=0; r=0; ans=0; //a.insert(s[0]); while(r<n) { //cout<<r<<endl; while((r<n)&&(!a.count(s[r]))) { a.insert(s[r++]); } //cout<<r<<" "<<l<<endl; ans=max(ans,r-l); a.erase(s[l++]); } cout<<ans<<endl; } return 0; }
相关文章推荐
- Uva - 11572 - Unique Snowflakes
- UVA 11572 Unique Snowflakes .
- 【高效算法设计——滑动窗口】UVa 11572 Unique Snowflakes
- UVa 11572 - Unique Snowflakes (滑动窗口STL_map||set) 好题!!!
- UVa 11572 Unique Snowflakes
- uva 11572 - Unique Snowflakes
- 解题报告 之 UVA11572 Unique Snowflakes
- UVA 11572 Unique Snowflakes(最长无重复元素问题) 用dp思路
- uva 11572 - Unique Snowflakes(Towpointer)
- BNU19990 UVA11572 Unique Snowflakes
- UVA 11572 - Unique Snowflakes
- UVA - 11572 Unique Snowflakes
- UVA 11572 Unique snowflakes (滑窗)
- UVa 11572 Unique snowflakes【滑动窗口】
- UVa 11572 - Unique Snowflakes (好题)
- uva 11572 - Unique Snowflakes(与书上方法略有不同)
- uva 11572 Unique Snowflakes
- UVA 11572 Unique Snowflakes
- UVa 11572 Unique Snowflakes——思路题
- UVa11572 Unique Snowflakes (贪心+尺取法+set容器)