368 条题解

  • 5
    @ 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;
     }
    
  • 3
    @ 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
    @ 2022-04-09 22:08:16

    给大家参考下我自己写的代码(不看任何人)

    #include <iostream>
    #include <algorithm>
    #include <vector>
    int a,c;
    
    using namespace std;
    int main(int argc, char** argv) {
        vector<int> b = {};
        cin>>a;
        int d[a];
        for(int i=0;i<a;i++){
            cin>>c;
            b.push_back(c);
            d[i] = -1;
        }
        sort(b.begin(),b.end());//排序 
        int n=-1,m=0;
        for(int i=0;i<a;i++){//去重 
            if(b[i] == n){
                d[i] = i;
                m++;
            }
            n = b[i];
        }
        cout<<a-m<<endl;
        int x=0;
        for(int i=0;i<a;i++,x++){
            if(d[x] != i){
                cout<<b[i]<<" ";
            }
        }
        return 0;
    }
    
    

    有帮助的请点个赞

  • 1
    @ 2022-03-17 16:47:42

    hh,set 4行搞定

    #include<bits/stdc++.h>
    using namespace std;
    set<int> s;
    int x,n,i;
    int main() {
      cin>>n;
      for(int i=1;i<=n;i++) cin>>x,s.insert(x);
      cout<<s.size()<<endl;
      for(set<int>::iterator it=s.begin();it!=s.end();it++) cout<<*it<<" ";
    }
    
  • 1
    @ 2021-12-26 17:59:52

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    int n,sum=0;
    cin>>n;
    int a[1005]={0};
    int s;
    for(int i=1;i<=n;i++)
    {
    cin>>s;
    a[s]=1;
    }
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    sum++;
    }
    }
    cout<<sum<<endl;
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    cout<<i<<" ";
    }
    }

    return 0;
    }//去重

  • 1
    @ 2021-12-26 17:59:27

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    int n,sum=0;
    cin>>n;
    int a[1005]={0};
    int s;
    for(int i=1;i<=n;i++)
    {
    cin>>s;
    a[s]=1;
    }
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    sum++;
    }
    }
    cout<<sum<<endl;
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    cout<<i<<" ";
    }
    }

    return 0;
    }

  • 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;
    }
    
  • 1

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

  • 1
    @ 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-12-26 18:00:29

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    int n,sum=0;
    cin>>n;
    int a[1005]={0};
    int s;
    for(int i=1;i<=n;i++)
    {
    cin>>s;
    a[s]=1;
    }
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    sum++;
    }
    }
    cout<<sum<<endl;
    for(int i=1;i<=1001;i++)
    {
    if(a[i]==1)
    {
    cout<<i<<" ";
    }
    }

    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-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;
    }
    

信息

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