混合颜料-求向量组的秩
混合颜料
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); } } }