您的位置:首页 > 编程语言 > Go语言

hdoj 6019 MG loves gold

2017-04-23 20:15 239 查看
题目链接:MG loves gold

题目大意:给你一个序列,然后要分出来很多连续的小序列,里面不能有重复的数字,问最少需要分多少序列。

题目思路:数据比较大,所以需要用到STL吧,map,vector,set什么的都可以去玩,我用的vector,每次加数据的时候判断一下有没有在数列中出现,如果出现的话,就清空vector然后cot++,具体看代码#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

ll n,a[100005],cot;
vector<ll>flag;
vector<ll>::iterator it;

int main(){
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--){
cin>>n;
flag.clear();
cot = 0;
for(int i = 0;i < n;i++)
cin>>a[i];
flag.push_back(a[0]);
for(int i = 1;i < n;i++){
it = find(flag.begin(),flag.end(),a[i]);
if(it != flag.end()) cot++,flag.clear(),flag.push_back(a[i]);
else flag.push_back(a[i]);
}
cout<<cot+1<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: