zoukankan      html  css  js  c++  java
  • CSDN 正整数异或值问题

    题目详情:

    http://student.csdn.net/mcs/programming_challenges?page=4

    给你n个正整数,请你计算出有多少对数的异或值小于等于k。

    输入描写叙述:

    输入包括多组測试数据。每组測试数据包括两行,第一行为两个正整数n(2<=n<=100000),k(k<2^30);第二行包括n个正整数,每一个数都小于2^30,每两个数以空格隔开。

    输出描写叙述:

    对于每组測试数据输出对应的答案。

    输入例子:

    5 6

    4 3 5 7 9

    5 3

    7 9 8 4 3

    输出例子:

    5

    2

    题目分析:

    因为题目数据仅仅到100000,能够直接进行暴力求解,仅仅是要注意。该值不能异或自己。并且要去掉反复的个数。比如a^b与b^a是一种。

    AC代码:

    #include<iostream>
    using namespace std;
    typedef long long LL;
    LL a[100001];
    int main()
    {
        LL k; int n;
        while(cin>>n>>k){
            int sum=0;
            for(int i=0;i<n;i++){
                cin>>a[i];
            }
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    if((i!=j)&&(a[i]^a[j])<=k){
                        //cout<<a[i]<<" "<<a[j]<<" "<<(a[i]^a[j])<<endl;
                        sum++;
                    }
                }
            }
            cout<<sum/2<<endl;
        }
        return 0;
    }


  • 相关阅读:
    分页系统
    ORM-数据处理
    Django的用法
    登录cookie写法
    MySQL数据库的安装创建
    前端弹框编写
    ADB常用指令
    Appium环境配置
    Jmeter中传递cookie值
    Jmeter从文件中读取参数值
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5232525.html
Copyright © 2011-2022 走看看