zoukankan      html  css  js  c++  java
  • HDU 3711 Binary Number

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3711

    分析:直接暴力

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 const int MAXN = 100 + 10;
     5 
     6 struct Set
     7 {
     8     int num;
     9     char bi[25];
    10 };
    11 
    12 char str[25];
    13 int m, n;
    14 char temp[25];
    15 Set S[MAXN];
    16 
    17 void Change( int num )
    18 {
    19     memset( temp, '0', sizeof( temp ) );
    20 
    21     int a = num;
    22     int r, k = 24;
    23 
    24     while( a != 0 )
    25     {
    26         r = a % 2;
    27         temp[k--] = r + '0';
    28         a = a / 2;
    29     }
    30 
    31   //  puts(temp);
    32     return;
    33 }
    34 
    35 int CountDiff( char *a, char *b )
    36 {
    37     int cnt = 0;
    38     for ( int i = 0; i < 25; i++ )
    39         if ( a[i] != b[i] ) cnt++;
    40     return cnt;
    41 }
    42 
    43 int FindMin()
    44 {
    45     int ans;
    46     int min = 0x7fffffff, min_i, min_num;
    47 
    48     for ( int i = 0; i < m; i++ )
    49     {
    50         ans = CountDiff( S[i].bi, temp );
    51         if ( ans < min )
    52         {
    53             min = ans;
    54             min_i = i;
    55             min_num = S[i].num;
    56         }
    57         else if ( ans == min )
    58         {
    59             if ( S[i].num < min_num )
    60             {
    61                 min = ans;
    62                 min_i = i;
    63                 min_num = S[i].num;
    64             }
    65         }
    66     }
    67 
    68     return min_i;
    69 }
    70 
    71 int main()
    72 {
    73     int T;
    74     scanf( "%d", &T );
    75     while ( T-- )
    76     {
    77         scanf( "%d%d", &m, &n );
    78         for ( int i = 0; i < m; i++ )
    79         {
    80             scanf("%d", &S[i].num);
    81             Change( S[i].num );
    82             strcpy( S[i].bi, temp );
    83         }
    84         int a;
    85         for ( int j = 0; j < n; j++ )
    86         {
    87             scanf( "%d", &a );
    88             Change( a );
    89             printf( "%d\n", S[FindMin()].num );
    90         }
    91     }
    92     return 0;
    93 }
  • 相关阅读:
    AcWing 37. 树的子结构
    AcWing 30. 正则表达式匹配 (剑指OFFER leetcode 10)
    Leetcode 514 自由之路
    AcWing 28. 在O(1)时间删除链表结点
    solrCloud+tomcat+zookeeper配置
    ZooKeeper原理及配置
    ZooKeeper原理及配置
    ZooKeeper原理及配置
    SolrCloud Hello Word
    SolrCloud Hello Word
  • 原文地址:https://www.cnblogs.com/GBRgbr/p/2623898.html
Copyright © 2011-2022 走看看