2014年 常州市小学生比赛(CZOI)试题 :天平

问题描述

小T到CZ中学上的第一堂课是物理课,第一堂课L老师就把大家带到创新实验室去做实验了,实验的内容是天平称物。众所周知天平是物理实验室中的一种衡量物体质量的仪器,它依据杠杆原理制成,在杠杆的两端各有一个小盘,一端放砝码,另一端放要称的物体,杠杆中央装有指针,两端平衡时,意味着两端的质量相等。这些道理对学过初中物理的人来说已经是老生常谈了,小T原以为这次实验跟初二做过的不会有太大区别,但当他一走进创新实验室,就立即被眼前堆得跟小山一样的砝码震住了,小T走上前去拿出几个砝码看了一下,发现所有砝码上标明的质量均为 22 的幂次:1g,2g,4g,8g,16g,32g1g,2g,4g,8g,16g,32g 等等,这下小T彻底被雷到了,心想这是物理实验室吗?怎么跟计算机中的二进制表示那么相似呢? 正当小T想得出神,L老师已经在大声催促同学们座到指定位置上去做实验了,小T和同桌小S两人一组很快就把桌上几个物体的质量用天平称出来了,抬头一看周围的同学还都在忙碌着,小T就对小S说:“我们来做个游戏好不好?”小S说:“做什么游戏?” 小T说:“很简单,我随意抓一把些砝码放到天平的左端,你要在天平的右端放置最少数量的砝码使得天平平衡。”小S说:“没问题,那我们就开始吧!”游戏开始后,小S发现当小T放上去的砝码个数较多且相同质量的砝码有多个时有点难办,于是他就找到了会编程的你,希望你帮他处理这个问题。

输入格式

输入数据共有两行,第一行包含一个正整数 NN,表示小T一共抓了 NN 个砝码放到了天平的左端,第二行有 NN 个用空格隔开的正整数 表示每个砝码的质量,每个砝码的质量都是 22 的幂次,即等于若干个 22 连乘的积,如 88 等于 33 个 22 连乘的积,6464 等于 66 个 22 连乘的积,10241024 等于 1010 个 22 连乘的积等等,特别地我们规定 11 也是 22 的幂次。

输出格式

输出数据仅有一行包含一个正整数表示小S最少要在天平的右端放置几个砝码,CZ中学的物理创新实验室里只有质量为 22 的幂次的砝码,并且每种砝码都取之不尽用之不竭。

输入数据 1

2
8 8

输出数据 1

1

输入数据 2

6
1 1 1 4 1 1

输出数据 2

2

数据范围

30%30% 的数据满足:N≤10N≤10,天平左端的 NN 个砝码的总质量不超过100g100g

60%60% 的数据满足:N≤100N≤100,天平左端的 NN 个砝码的总质量不超过10000g10000g

100%100% 的数据满足:N≤10000N≤10000,天平左端的 NN 个砝码的总质量不超过 2000000000g2000000000g

题解

#include<bits/stdc++.h>
using namespace std;
int n,sum,ans;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n;
	while(n--){
		int x;
		cin>>x;
		sum+=x;
	}
	for(int i=0;i<=int(log2(sum));i++){
		if(sum&(1<<i))ans++;
	}
	cout<<ans<<endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值