hdoj 6019 MG loves gold

来源:互联网 发布:qq邮箱 mac推送 编辑:程序博客网 时间:2024/05/17 00:54

题目链接: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;}

0 0
原创粉丝点击