混合颜料-求向量组的秩

混合颜料

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);

        }
    }
}
全部评论

相关推荐

12-05 18:09
已编辑
广东药科大学 后端工程师
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务