问下I题,哪个题解k是用来求有多少不相同的数吗?
我用set代替就过不了啊,只能过85.7%;

for(int i=1;i<=n;i++){
        cin>>a[i];
        se.insert(a[i]);
    }
    int s1=0,s2=0x7fffffff;
    for(int i=1;i<=n;i++){
        s1|=a[i];//找出二进制位有1的位置
        s2&=a[i];//找出二进制位都为1的位置
    }
    s2^=s1;//找出二进制位有1但不都为1的位置
    ll ans;
    int t=se.size()-1;
    for(int i=0;i<=30;i++){
        int c=1<<i;
        if(s2&c){//找出s1二进制位的为1的最小位置
            ans=1ll*c*t;   
            break;
        }
    }