Uva11572-Unique Snowflakes
2013-08-15 21:53
369 查看
统计最长无公共元素子串:map 搞定
#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <string> #include <map> using namespace std; int n; vector<int> st; map<int,int> visit; void LNRS_dp_hash_impro(vector<int> &arr, int size){ //memset(visit, -1, sizeof visit); int maxlen = 1; visit[arr[0]] = 1; int curlen = 1; int last_start = 0; for(int i = 1; i < size; ++i){ if(visit[arr[i]] == 0){ ++curlen; //cout<<curlen<<"@@@@"<<endl; visit[arr[i]] = i+1; // cout<<visit[arr[i]]<<endl; }else{ if(last_start <= visit[arr[i]]){ curlen = i - visit[arr[i]]+1; //cout<<curlen<<"@@@!!!"<<endl; last_start = visit[arr[i]] + 1; visit[arr[i]] = i+1; // 更新最近重复位置 }else{ ++curlen; // cout<<curlen<<"####"<<endl; visit[arr[i]] = i+1; // 更新最近重复位置 } } // cout<<curlen<<endl; if(curlen > maxlen){ maxlen = curlen; } } cout<<maxlen<<endl; } int main(){ int ncase; cin >> ncase; while(ncase--){ visit.clear(); st.clear(); scanf("%d",&n); for(int i = 0; i < n; i++){ int tmp; scanf("%d",&tmp); st.push_back(tmp); } LNRS_dp_hash_impro(st,n); } return 0; }
相关文章推荐
- UVA 11572(p239)----Unique snowflakes
- uva 11572 unique snowflakes——yhx
- uva 11572 - Unique Snowflakes(和书略有不同)
- uva 11572 unique snowflakes——yhx
- uva 11572 unique snowflakes——yhx
- Unique Snowflakes UVA - 11572
- 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——yhx
- UVA - 11572 Unique Snowflakes 滑动扫描
- UVA 11572 Unique Snowflakes (滑动窗口)
- UVa 11572 Unique Snowflakes
- UVA11572_Unique Snowflakes
- Uva - 11572 - Unique Snowflakes
- 解题报告 之 UVA11572 Unique Snowflakes
- UVA11572 Unique Snowflakes(滑窗)