363 条题解

  • 4
    @ 2017-12-02 15:15:09

    #include <iostream>
    #include <cstring>
    using namespace std;
    int main()
    {
    int n,a[1009]={0},t,s=0;
    cin>>n;
    for (int i=1;i<=n;++i)
    {
    cin>>t;
    a[t]++;
    }
    for (int i=1;i<=1000;++i)
    {
    if (a[i]!=0)
    {
    ++s;
    }
    }
    cout<<s<<endl;
    for (int i=1;i<=1000;++i)
    {
    if (a[i]!=0)
    {
    cout<<i<<" ";
    }
    }
    cout<<endl;
    return 0;
    }

  • 3
    @ 2021-04-18 12:07:27

    其实这题用STL中的set(集合)做是再简单不过了
    set,顾名思义,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。
    头文件:#include < set > //用bits的童鞋请忽略

    常用操作 :
    begin()    返回set容器的第一个元素的 地址
    end()      返回set容器的最后一个元素 **地址 **
    clear()    删除set容器中的所有的元素
    empty()     判断set容器是否为空
    max_size()   返回set容器可能包含的元素最大个数
    size()      返回当前set容器中的元素个数
    erase(it) 删除迭代器指针it处元素
    insert(a) 插入某个元素
    更多关set的用法详见
    博客园

    最后上本题代码

    #include<bits/stdc++.h>
    using namespace std;
    set<int>s;
    int a[105];
    int main()
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
            s.insert(a[i]);
        }
        cout<<s.size()<<endl;
        while(!s.empty())
        {
            cout<<*s.begin()<<" ";           //注意此处的用法
            s.erase(s.begin()); 
        }
        return 0;
     }
    
  • 2

    牛马题,直接地精不就好了,CSDNyyds

  • 2
    @ 2017-10-09 17:38:05

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int a[1010];
    int book[1010];
    int main()
    {
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>a[i];
    sort(a,a+n);
    int ans=0;
    for(int i=0;i<n;i++)
    {
    ans++;
    book[i]=1;
    if(i)
    {
    if(a[i]==a[i-1])
    {
    ans--;
    book[i]=0;
    }
    }
    }
    cout<<ans<<endl;
    for(int i=0;i<n;i++)
    {
    if(i)
    cout<<" ";
    if(book[i])
    cout<<a[i];
    }
    cout<<endl;
    return 0;
    }
    输出格式有问题竟然能AC...

    • @ 2017-10-10 18:12:09

      有重复元素的时候会多输出空格……
      呃……可能数据水吧,本来就是个水题不是

    • @ 2019-07-25 11:35:48

      @
      054545641
      : sort是个好东西

  • 1
    @ 2021-08-29 16:48:48
    #include<iostream>
    using namespace std;
    int main(){
        int n,x;
        cin>>n;
        int sum(0),bus[1002]={0};
        for(int i=1;i<=n;i++){
            cin>>x;
            if(bus[x])  //如果这个数已经出现过了,那么跳过
                continue;
            bus[x]++;  //如果没有出现,把数据放在桶里,并让总数居++
            sum++;
        }
        cout<<sum<<endl;
        for(int i=1;i<=1000;i++)
            if(bus[i])
                cout<<i<<' ';
        cout<<endl;
        return 0;
    }
    
  • 0
    @ 2021-06-19 21:35:42

    #include"iostream"
    #include"algorithm"
    using namespace std;
    int N;
    int main()
    {
    cin>>N;
    int a[N]={};
    for(int i=0;i<N;i++)
    {
    cin>>a[i];
    }
    sort(a,a+N);
    int n=unique(a,a+N)-a;
    cout<<n<<endl;
    for(int i=0;i<n;i++)
    {
    cout<<a[i]<<" ";
    }
    return 0;
    }

  • 0
    @ 2021-06-13 10:59:13

    可以直接桶牌

    #include<iostream>
    using namespace std;
    bool tp[2000];
    int n,tot;
    int main(){
        ios::sync_with_stdio(0);
        cin>>n;
        for(int i=1;i<=n;i++){
            int x;
            cin>>x;
            if(!tp[x]){
                tot++;
                tp[x]=1;
            }
        }
        cout<<tot<<endl;
        for(int i=1;i<=1000;i++){
            if(tp[i]){
                cout<<i<<" ";
            }
        }
        return 0;
    }
    
    
  • 0
    @ 2021-03-17 10:01:40
    #include <cmath>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <deque>
    using namespace std;
    
    namespace dts
    {
        int n,a[1<<7],vis[1<<10];
        
        void main()
        {
            scanf("%d",&n);
            for (int i=0;i<n;i++)
                scanf("%d",&a[i]);
            memset(vis,0,sizeof(vis));
            int ans=0;
            for (int i=0;i<n;i++)
                if (vis[a[i]]==0)
                    vis[a[i]]=1,ans++;
            printf("%d\n",ans);
            for (int i=0;i<(1<<10);i++)
                if (vis[i]==1)
                    printf("%d ",i);
            printf("\n");
        }
    };
    
    int main()
    {
        dts::main();
    }
    
  • 0
    @ 2021-02-08 14:11:53

    awa
    sort+unique即可完成排列+去重
    记得加algorithm头文件qaq
    AC代码:
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int Maxn = 1e3+5;
    int n,a[Maxn];
    int main(){
    cin>>n;
    for(int i=0;i<n;++i) cin>>a[i];
    sort(a,a+n);
    int ans=unique(a,a+n)-a;
    cout<<ans<<endl;
    for(int i=0;i<ans;++i)
    cout<<a[i]<<" ";
    return 0;
    }

  • 0
    @ 2021-02-08 14:10:24

    awa
    sort+unique即可完成排列并去重qaq
    记得加algorithm头文件呐
    AC代码:
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int Maxn = 1e3+5;
    int n,a[Maxn];
    int main(){
    cin>>n;
    for(int i=0;i<n;++i) cin>>a[i];
    sort(a,a+n);
    int ans=unique(a,a+n)-a;
    cout<<ans<<endl;
    for(int i=0;i<ans;++i)
    cout<<a[i]<<" ";
    return 0;
    }

  • 0
    @ 2020-11-28 20:48:06

    思路:sort排序+判断

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int m;
    int sum,d=-1;
    int que[201];
    int main()
    {
        cin>>m;
        for(int i=1;i<=m;i++)
        cin>>que[i];
        sort(que+1,que+1+m);
        sum=m;
        for(int i=1;i<=m;i++)
        {
            if(d!=que[i])
            d=que[i];
            else
            sum--;
        }
        cout<<sum<<endl;
        for(int i=1;i<=m;i++)
        {
            if(d!=que[i])
            {
                d=que[i];
                if(i!=1) cout<<" "<<d;
                else cout<<d;
            }
        }
        return 0;
    } 
    
  • 0
    @ 2020-06-05 11:33:38
    #include <cstdio>
    #include <iostream>
    using namespace std;
    
    int n,cnt = 0;
    bool bo[1001];
    
    int main(){
        cin >> n;
        for (int i = 1;i <= n;i++){
            int x;
            cin >> x;
            if (bo[x]==false){
                bo[x] = true;
                cnt++;
            }
        }
        cout<<cnt<<endl;
        for (int i = 1;i <= n;i++){
            if (bo[i]){
                cout<<i<<" ";   
            }
        }
        reuturn 0;
    }
    
  • 0
    @ 2020-06-05 11:33:38
    #include <cstdio>
    #include <iostream>
    using namespace std;
    
    int n,cnt = 0;
    bool bo[1001];
    
    int main(){
        cin >> n;
        for (int i = 1;i <= n;i++){
            int x;
            cin >> x;
            if (bo[x]==false){
                bo[x] = true;
                cnt++;
            }
        }
        cout<<cnt<<endl;
        for (int i = 1;i <= n;i++){
            if (bo[i]){
                cout<<i<<" ";   
            }
        }
        reuturn 0;
    }
    
  • 0
    @ 2020-06-05 11:33:38
    #include <cstdio>
    #include <iostream>
    using namespace std;
    
    int n,cnt = 0;
    bool bo[1001];
    
    int main(){
        cin >> n;
        for (int i = 1;i <= n;i++){
            int x;
            cin >> x;
            if (bo[x]==false){
                bo[x] = true;
                cnt++;
            }
        }
        cout<<cnt<<endl;
        for (int i = 1;i <= n;i++){
            if (bo[i]){
                cout<<i<<" ";   
            }
        }
        reuturn 0;
    }
    
  • 0
    @ 2020-05-09 13:35:03

    大水,模拟

    #include<iostream>
    using namespace std;
    int main(){
        int n,x,sum=0,bus[1002]={};
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>x;
            if(bus[x])continue;
            bus[x]++;sum++;
        }
        cout<<sum<<endl;
        for(int i=1;i<=1000;i++)if(bus[i])cout<<i<<" ";
        cout<<endl;
        return 0;
    }
    
  • 0
    @ 2020-03-18 00:42:46

    set大法好

    #include<iostream>
    #include<set>
    using namespace std;
    
    set<int> s;
    
    int main(){
        int n, tmp;
        cin >> n;
        for(int i = 0 ; i < n ; ++i) {
            cin >> tmp;
            s.insert(tmp);
        }
        
        cout << s.size() << endl;
        
        for(auto iter = s.begin(); iter != s.end(); ++iter) {
            cout << *iter << " ";
        } 
        
        cout << endl;
        
        return 0;
    }
    
  • 0
    @ 2020-02-08 17:30:14
    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
        int amount;
        cin>>amount;
        vector <int> array;
        
        for(int i=0;i<amount;i++)
        {
            int number;
            cin>>number;
            array.push_back(number);
            if(i!=0)
                for(int j=0;j<array.size()-1;j++)
                    if(array[j]==array[array.size()-1])
                    {
                        array.pop_back();
                        break;
                    }
        }
        
        cout<<array.size()<<endl;
        
        sort(array.begin(), array.end());
        for(int i=0;i<array.size();i++)
            cout<<array[i]<<" ";
    
    }
    
    
  • 0
    @ 2019-07-21 14:42:39

    不是直接用set就过了吗哈哈哈

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <set>
    using namespace std;
    
    set<int> store;
    
    int main()
    {
        int n, temp;
        cin >> n;
        for(int i=0; i<n; i++){
            cin >> temp;
            store.insert(temp);
        }
    
        cout << store.size() << endl;
        set<int>::iterator it;
        for(it = store.begin(); it!=store.end(); it++){
            cout << *it << " ";
        }
    
        return 0;
    }
    
  • 0
    @ 2019-06-18 08:40:38

    #include <iostream>
    using namespace std;
    int main(void)
    {
    int n, a[100] = { 0 };
    int b[100] = { 0 };
    int j = 0, t = 0;
    cin >> n;
    for (int i = 0; i < n; ++i) {
    cin >> a[i - j];
    for (int k = 0; k < i-j; ++k) {
    if (a[i-j] == a[k]) {
    a[i - j] = 0;
    ++j;
    break;
    }
    }
    }
    cout << n - j << endl;
    for (int k = 0; k < n - j; ++k) {
    for (int i = 0; i < n-j; ++i) {
    if (a[t] > a[i])t = i;
    }
    b[k] = a[t];
    a[t] = 2147483647;
    }
    for (int i = 0; i < n - j; ++i)cout << b[i] << ' ';
    return 0;
    }

  • 0
    @ 2019-05-26 23:43:47
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n,a[120],i,k,x,j;
    bool f[1100];
    int comp(int a,int b)
    {
        if(a<b) return 1;
        else return 0;
    }
    int main()
    {
        memset(f,0,sizeof(f));
        scanf("%d",&n);
        j=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&x);
            if(f[x]==1) continue;
            if(f[x]==0) { j++; a[j]=x; f[x]=1; k++; }
        }
        sort(a+1,a+k+1,comp);
        cout<<k<<endl;
        for(i=1;i<=k;i++) cout<<a[i]<<' ';
        return 0;
    }
    

信息

ID
1316
难度
3
分类
其他 | 排序 点击显示
标签
递交数
9800
已通过
4777
通过率
49%
被复制
22
上传者