cf怎么会忍心真的让我们交换二进制数的数位呢(doge)
得min
0&0=0,0&1=0,1&0=0,1&1=1
得max
0|0=0,0|1=1,1|0=1,1|1=1
#include <iostream> using namespace std; int main() { int t; scanf("%d",&t); int n; int a[513]; while(t--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } int maxx=a[0]; int minn=a[0]; for(int i=1;i<n;i++) { maxx=maxx|a[i]; minn=minn&a[i]; } printf("%d\n",maxx-minn); } return 0; }
Code over!