金色十月线上编程比赛第二题:解密

题目详情:

小强是一名学生, 同一时候他也是一个黑客。 考试结束后不久。他吃惊的发现自己的高等数学科目竟然挂了,于是他果断入侵了学校教务部站点。

在入侵的过程中。他发现了与成绩相关的内容是一个加密文件,这个文件由 n 个数构成,经过分析。这个加密文件的密钥为这
n 个数中二进制位数 1 最少的数。

但因为数比較多,小强 希望你能帮他得到密钥,好在成绩发布之前将成绩改过来。

输入描写叙述:

输入由多组数据构成。每组数据第一行为一个数 n(1<=n<=10^5),表示数的数量。第二行 n 个整数表示文件里的每一个数(1<=每一个数<=10^9)。以文件结尾。

输出描写叙述:

对于每组数据输出一行,先输出数据组数,再输出二进制中含 1 最少的数,假设有多个数符合条件,输出最小的那个。

答题说明:

输入例子:

5

3 2 4 5 6

输出例子:

Case 1: 2

分析:

这道题不难,但有个大坑害我提交了几次才AC。在输出的位置"Case 1: 2",这里“Case”与组数“1”之间有空格,分号“:”和结果“2”之间也有空格(在此空格上栽过跟头,我仅仅能说受教育啦)。

CODE:

#include "stdio.h"
#define MAXN 1000000000+10 int main()
{
long long m,result;
int n,min,num=1;
while(~scanf("%d",&n)){ min=100; result=MAXN; //初始化 for(int i=0;i<n;i++){
scanf("%lld",&m);
int total=0;
long long temp=m;
while(temp>0){
if(temp%2==1) total++;
temp/=2;
} if(total<min){
result=m; min=total;
}else if(total==min && m<result){
result=m; min=total;
}
}
printf("Case %d: %lld\n",num++,result);
} return 0;
}

CSDN挑战编程——《金色十月线上编程比赛第二题:解密》的更多相关文章

  1. CSDN挑战编程——《绝对值最小》

    绝对值最小 题目详情: 给你一个数组A[n],请你计算出ans=min(|A[i]+A[j]|)(0<=i,j<n). 比如:A={1, 4, -3}, 则: |A[0] + A[0]| ...

  2. CSDN挑战编程——《数学问题》

    数学问题 题目详情: 给你两个长度为n的正整数序列分别为{a1,a2,a3...an},{b1,b2,b3...bn},0<ai,bi<=100: 设S=max{x1*a1+x2*a2+x ...

  3. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...

  4. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  5. csdn在线编程里面的一个排列组合题

    是csdn在线编程里面的一个问题 回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串. 输入:非空仅由小写字母组成的字符 ...

  6. C语言:输入10个整数,找出其中绝对值最小的数

    1 输入10个整数,找出其中绝对值最小的数(10分) 题目描述 输入10个整数,找出其中绝对值最小的数 输入 十个整数 输出 绝对值最小的数 样例输入 -10 -2 30 40 50 60 70 80 ...

  7. 挑战编程 uva100 3n+1

    挑战编程 刘汝佳 的第一道习题  热身题 熟悉下提交格式 题意 #include <iostream> #include <algorithm> using namespace ...

  8. TZOJ 4024 游戏人生之梦幻西游(连续子段和绝对值最小)

    塔神酷爱玩梦幻西游这款游戏,这款游戏以著名的章回小说<西游记>故事为背景,透过Q版的人物,营造出浪漫的网络游戏风格.塔神以追求天下无敌为目标,从一个默默无闻的菜鸟,打拼到了登峰造极的大师, ...

  9. 编程算法 - 最小的k个数 红黑树 代码(C++)

    最小的k个数 红黑树 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入n个整数, 找出当中的最小k个数. 使用红黑树(multiset) ...

随机推荐

  1. openssl之BIO系列之5---CallBack函数及其控制

    CallBack函数及其控制     ---依据openssl doc/crypto/bio/bio_set_callback.pod翻译和自己的理解写成          (作者:DragonKin ...

  2. 执行命令行并等待完成(使用WaitForSingleObject达到目的)

    function TDMDb.WaitExeFinish(const sCmdName: string):boolean; var StartupInfo: TStartupInfo; Process ...

  3. Extjs4 RowEditing 的使用和更新方法

    如何灵活快速的掌握RowEditing组件的应用,应大家的要求,今天给大家具体讲下该组件的使用. 1.创建 var rowEditing = Ext.create('Ext.grid.plugin.R ...

  4. Shell简易学习练习

    1.Linux Shell入门 Quiz 1 一个接受命令行参数的shell脚本 任务 编写一个shell脚本1.sh,这个脚本接受一个命令行参数,并把这个参数打印两次到标准输出. 如果输入没有参数输 ...

  5. poj3662(二分+最短路)

    题目连接:http://poj.org/problem?id=3662 题意:有n个节点p条无向边,现在可以选择其中的任意K条免费,则花费为除了k条边后权值最大的一个,求最小花费多少. 分析:二分枚举 ...

  6. Notifications(通知)

    通知 通知是能在应用的普通用户界面外显示给用户的一种消息. 当你告诉系统公布一条通知时,它首先在通知栏中表现为一枚图标. 用户打开通知抽屉后就能查看通知的细节了. 通知栏和通知抽屉都是由系统控制的区域 ...

  7. Linux+Apache+Mysql+Php

    CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境 一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, My ...

  8. 使用Django创建简易Blog

    网上看了个例子,但是自己却运行不同,最后终于知道了原因,记录下来.原来没有给settings.py里的INSTALLED_APPS添加blog.就像这样: 这是一个手把手的实例教程,本来学习笔记一样, ...

  9. java參数传递方式问题

    java的參数传递方式到底是值传递还是引用传递,这一直是一个争论不休的问题,一直以来没有形成统一意见. 在这里,我也仅仅是说一说个人见解,不保证是对的,全当是抛砖引玉. 首先我的观点是java採用的是 ...

  10. ubuntu终端方向键不能用(主机名不显示)问题的解决

    sudo gedit /etc/passwd 在/etc/passwd中改动该用户相应的shell:/bin/sh改为/bin/bash就可以解决该问题