• hdoj3711【水】


    题意:
    给你两个集合,对于每个B集合的元素,从A集合找一个数使得a^b的二进制的1个数最少。
    思路:
    直接搞= =

    #include <bits/stdc++.h>
    using namespace std;
    
    typedef long long LL;
    
    struct asd{
        int num;
        int sum;
    };
    asd q[110];
    bool cmp(asd x,asd y)
    {
        if(x.sum<y.sum)
            return 1;
        if(x.sum==y.sum)
            return x.num<y.num;
        return 0;
    }
    
    
    int solve(int n)
    {
        int ans=0;
        while(n)
        {
            ans+=(n%2);
            n>>=1;
        }
        return ans;
    }
    int a[110],b[110];
    
    int main()
    {
        int n,m;
        int T;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&m,&n);
            for(int i=0;i<m;i++)
                scanf("%d",&a[i]);
            for(int i=0;i<n;i++)
                scanf("%d",&b[i]);
            int num=0;
            int k;
            int x;
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<m;j++)
                {
                    q[j].num=a[j];
                    q[j].sum=solve(a[j]^b[i]);
                }
                sort(q,q+m,cmp);
                printf("%d
    ",q[0].num);
            }
        }
        return 0;
    }
  • 相关阅读:
    SPA项目开发之登录
    使用vue-cli搭建SPA项目
    ElementUI入门和NodeJS环境搭建
    struts文件上传
    Struts增删改查
    struts
    Maven
    easyui三
    EasyUi权限
    自定义MVC三
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934806.html
Copyright © 2020-2023  润新知