zoukankan      html  css  js  c++  java
  • 九度oj 题目1380:lucky number

    题目描述:
    每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然这样,他就想找到那些不是lucky number。
    输入:
    输入有两行.
    第一行有n和m。n表示出现次数为n的是lucky number,m表示序列的长度。2<=n<=10,m<=10^6,m%n!=0。
    第二行为序列元素,每个元素都是正整数。
    输出:
    输出那个不是lucky number的数。题目保证非lucky number只有一个。
    样例输入:
    2 5
    1 1 2 2 3
    
    样例输出:
    3

    发现许多重复几次的问题用位运算都是很好的办法,本题把每一个数转化为32位的二进制数
    代码如下
     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 int n, m;
     5 int num;
     6 int wnum[33];
     7 
     8 int main(int argc, char const *argv[])
     9 {
    10     while(scanf("%d %d",&n,&m) != EOF) {
    11 
    12         memset(wnum, 0, sizeof(wnum));
    13         int t = m % n;
    14         while(m--){
    15             scanf("%d",&num);
    16             for(int j = 0; j < 32; j++) {
    17                 int p = num&1;
    18                 wnum[j] = wnum[j] + p;
    19                 num = num >> 1;
    20             }
    21         }
    22         for(int j = 0; j < 32; j++) {
    23             wnum[j] = wnum[j] % n;
    24         }
    25         
    26         int ans = 0;
    27         
    28         for(int j = 31; j >= 0; j--) {
    29             ans = ans * 2 + wnum[j]/t;
    30         }
    31         printf("%d
    ",ans);
    32     }
    33     return 0;
    34 }

    比如

    2 5

    1 1 2 2 3

    结果是3

    编码得到

        00000001

        00000001

        00000010

        00000010

        00000011(因为数字比较小,省略了前面3位即24个0)

         求和 00000033

    取余      00000011 

    出现了m%n = 1次

    结果为3

    另外,设那个不为lucky_number的数为x,有

    x % n = sum%n = y
    m%n *x +sum(others) = sum

    不知道由这两点能不能启发出更好的办法

  • 相关阅读:
    [ZT]数据表:USR02(登录数据)
    ASP.NET Web 应用程序与ASP.NET网站比较
    DataTable排序的一般方法
    如何重建開啟被锁的SAP超级用戶帐号
    SQL語句中时间格式的转换
    [ZT]提高 Ajax 应用程序性能,避开 Web 服务漏洞
    SAP NetWeaver
    SAP安装步骤[ECC6]WIN2000AS
    SAP&SAP Solution Manager中的常用命令
    [转]如何在Visio 2007中画接口和实现类的关系图
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5811729.html
Copyright © 2011-2022 走看看