zoukankan      html  css  js  c++  java
  • Hamming Distance(随机算法)

    http://acm.hdu.edu.cn/showproblem.php?pid=4712

    题意:计算任意两个十六进制的数异或后1的最少个数。

    思路:用随机数随机产生两个数作为下标,记录这两个数异或后1的个数,输出1的个数最少是多少。

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <time.h>
     4 #include <math.h>
     5 
     6 using namespace std;
     7 const int N=100002;
     8 const int INF=1<<29;
     9 int f[N];
    10 int main()
    11 {
    12     int t;
    13     scanf("%d",&t);
    14     while(t--)
    15     {
    16         int n,ans = INF;
    17         scanf("%d",&n);
    18         for (int i = 0; i < n; i ++)
    19             scanf("%x",&f[i]);
    20         srand((unsigned)time(NULL));
    21         for (int i = 0; i < N*10; i ++)
    22         {
    23             int a = rand()%n;
    24             int b = rand()%n;
    25             if (a==b)
    26                 continue ;
    27             int t = f[a]^f[b];
    28             int temp = __builtin_popcount(t);
    29             ans = min(ans,temp);
    30         }
    31         printf("%d
    ",ans);
    32     }
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    stty
    ping
    read
    echo
    grep
    date
    vi与vim编辑器使用
    rename
    netstat
    input输入框的背景图片也可以这样玩
  • 原文地址:https://www.cnblogs.com/lahblogs/p/3319723.html
Copyright © 2011-2022 走看看