混合颜料-求向量组的秩
混合颜料
http://www.nowcoder.com/questionTerminal/5b1116081ee549f882970eca84b4785a
1 xor是位运算符亦或^;
2 x^y (x&y)<<1 可以模拟加法,而且在不考虑进位的情况下,x^y就可以模拟加法。
3 这题的数学本质是求向量组的秩,模拟高斯消元法即可
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int[] colors=new int[n];
for(int i=0;i<n;i++){
colors[i]=sc.nextInt();
}
Arrays.sort(colors);
for(int i=n-1;i>=0;i--){
for(int j=i-1;j>=0;j--){
if((colors[i]^colors[j])<colors[j]){
colors[j]^=colors[i];
}
}
Arrays.sort(colors);
}
int cnt=0;
for(int a:colors){
if(a!=0) cnt++;
}
System.out.println(cnt);
}
}
}
查看11道真题和解析