问题标题: 酷町堂:6786 与众不同2

0
0
已解决
武奕楷
武奕楷
新手天翼
新手天翼

https://ke.codingtang.com/#/problem/problemSub?id=6786

0分代码:

#include<iostream>
#include<cmath>
using namespace std;
long long sum,a,n,cnt[101],maxn;
string s1,s;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        int j=0;
        while(a){
            if(a%2){
                cnt[j]++;
            }
            maxn=max((long long)j,maxn);
            j++;
            a/=2;
        }
    }
    int j=0;
    while(j<=maxn){
        s1+=char(cnt[j]%3+'0');
        j++;
    }
    for(int i=s1.size()-1;i>=0;i--){
        s+=s1[i];
    }
    for(int i=0;i<s.size();i++){
        if(s[i]=='1')
            sum+=pow(2,i);
    }
    cout<<sum;
    return 0;
}

 


0
已采纳
被禁言 张皓轩
张皓轩
中级光能
中级光能
核心:
sort(a+1,a+1+n);
    for(int i=1;i<=n;i++){
        if(i==1){
            cnt++;
            continue;
        }
        if(a[i]==a[i+1]){
            cnt++;
        }else{
            if(cnt+1==1){
                cout<<a[i];
                break;
            }
            cnt=0;
        }
    }

 

0
0
0
0
朱小川
朱小川
缔造者
缔造者

谁能跟我这个**讲一下这题的数据范围

0
曹博扬
曹博扬
初级天翼
初级天翼

能解释一下你的代码是什么意思吗

0
汪恺恒
汪恺恒
中级启示者
中级启示者

用map不好吗

定义

map<int,int>m;

输入

for(){
        输入a[i];
        m[a[i]]++;
    }

核心

for(int i=1;i<=n;i++){
        if(m[a[i]]==1){
            cout<<a[i];
            break;
        }
    }

记得加个头文件

#include<map>

 

我要回答