xay loves or
注意y不能为0,要减去满足条件的0
#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
#define ll long long
//#define lowbit(x) x&-x
//#define N 200005
//typedef __int128 ll;
//typedef pair<int,int>pll;
ll get(ll n){
ll cnt=0;
while(n){
if(n&1==1) cnt++;//奇数,即为1
n=n>>1;
}
return cnt;
}
ll qpow(ll a,ll b){
ll res=1;
while(b){
if(b&1==1) res*=a;
a*=a;
b=b>>1;
}
}
signed main()
{
ll x,s; cin>>x>>s;
ll y=x&s;
if(y!=x) cout<<0<<endl;//1->0的情况
else{
ll z=x^s;//
ll k=get(x);//1的个数
ll ans=qpow(2,k);
if(z==0) ans--;
cout<<ans<<endl;
}
}
H.xay loves count
i,j,i*j满足要求,直接记录个数
#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
#define ll long long
#define lowbit(x) x&-x
#define N 1000005
//typedef __int128 ll;
typedef pair<int,int>pll;
int a[1000005];
signed main()
{
int n; cin>>n;
for(int i=1;i<=n;i++){
int x; cin>>x;
a[x]++;
}
ll ans=0;
for(int i=1;i<N;i++){
for(int j=1;i*j<N;j++){
ans+=1ll*a[i]*a[j]*a[i*j];
}
}
cout<<ans<<endl;
}