zoukankan      html  css  js  c++  java
  • SDUT OJ 2616 简单计算

    简单计算

    Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

    题目描述

    某天,XX YY 出了一道题,题目是:

    给出n 个十进制的数,找出这n 个数的二进制表示中1 的个数最少的数。

    由于YY 的计算能力很差,所以他想让你帮他写个程序来计算出来。

    输入

     

    输入的第一行为一个正整数T(1 T20),代表测试数据组数。

    对于每组测试数据:

    输入的第一行为一个正整数n (1 n 105)

    第二行为n 个正整数A1A2An1 Ai 109)。

    输出

     

    每组数据输出一行,先输出数据组数,再输出二进制中含1 最少的数,如果有多个数符合条件,输出最小的那个。具体输出格式见样例输出。

    示例输入

    2
    5 
    3 2 4 5 6
    4
    3 4 2 5

    示例输出

    Case 1: 2
    Case 2: 2

    #include <iostream>
    #include <string>
    #include <algorithm>
    
    using namespace std;
    int a[100004];
    
    int BitCount2(unsigned int n) 
    {
        unsigned int c =0 ;
        for (c =0; n; ++c)
        {
            n &= (n -1) ; // 清除最低位的1
        }
        return c ; //返回 该十进制数转换为二进制后中1的个数
    }
    
    int main()
    {
        int t;
        int i,j, k=1;
        int n;
        int dd, min, cc;
    
        cin>>t;
    
        while(t--)
        {
            cin>>n;
    
            cin>>a[0];
            min=BitCount2( a[0] );
            cc=a[0];
    
            for(i=1; i<n; i++)
            {
                cin>>a[i];
                dd=BitCount2(a[i]);
                if(dd<min )
                {
                    min=dd;
                    cc=a[i];
                }
                else if(dd==min)
                {
                    if(a[i]<cc)
                      cc=a[i];
                }
            }
            cout<<"Case "<<k++<<": "<<cc<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    bzoj 1195: [HNOI2006]最短母串 爆搜
    bzoj 4066: 简单题 kd-tree
    NOI冲刺计划2
    bzoj 3572: [Hnoi2014]世界树 虚树 && AC500
    bzoj 3153: Sone1 Toptree
    CTSC && APIO 总结
    bzoj 4031: [HEOI2015]小Z的房间 轮廓线dp
    bzoj 1902: Zju2116 Christopher lucas定理 && 数位DP
    BZOJ 1754: [Usaco2005 qua]Bull Math
    BZOJ 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
  • 原文地址:https://www.cnblogs.com/yspworld/p/4011627.html
Copyright © 2011-2022 走看看