Raising Bacteria
2015-09-17 12:43
363 查看
A. Raising Bacteria
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are a lover of bacteria. You want to raise some bacteria in a box.
Initially, the box is empty. Each morning, you can put any number of bacteria into the box. And each night, every bacterium in the box will split into two bacteria. You hope to see exactly x bacteria
in the box at some moment.
What is the minimum number of bacteria you need to put into the box across those days?
Input
The only line containing one integer x (1 ≤ x ≤ 109).
Output
The only line containing one integer: the answer.
Sample test(s)
input
output
input
output
Note
For the first sample, we can add one bacterium in the box in the first day morning and at the third morning there will be 4 bacteria in the
box. Now we put one more resulting 5 in the box. We added 2 bacteria
in the process so the answer is 2.
For the second sample, we can put one in the first morning and in the 4-th morning there will be 8 in the box. So the answer is 1.
思路:
利用树状数组的做法,找2的次方。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<vector>
using namespace std;
typedef __int64 ll;
#define CRL(a) memset(a,0,sizeof(a))
#define T 10100
int lowbit(int x)
{
return x&(-x);
}
int main()
{
/* freopen("input.txt","r",stdin);*/
int n,i;
while(~scanf("%d",&n))
{
i=0;
while(n)
{
i++;
n-=lowbit(n);
}
printf("%d\n",i);
}
return 0;
}
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are a lover of bacteria. You want to raise some bacteria in a box.
Initially, the box is empty. Each morning, you can put any number of bacteria into the box. And each night, every bacterium in the box will split into two bacteria. You hope to see exactly x bacteria
in the box at some moment.
What is the minimum number of bacteria you need to put into the box across those days?
Input
The only line containing one integer x (1 ≤ x ≤ 109).
Output
The only line containing one integer: the answer.
Sample test(s)
input
5
output
2
input
8
output
1
Note
For the first sample, we can add one bacterium in the box in the first day morning and at the third morning there will be 4 bacteria in the
box. Now we put one more resulting 5 in the box. We added 2 bacteria
in the process so the answer is 2.
For the second sample, we can put one in the first morning and in the 4-th morning there will be 8 in the box. So the answer is 1.
思路:
利用树状数组的做法,找2的次方。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<vector>
using namespace std;
typedef __int64 ll;
#define CRL(a) memset(a,0,sizeof(a))
#define T 10100
int lowbit(int x)
{
return x&(-x);
}
int main()
{
/* freopen("input.txt","r",stdin);*/
int n,i;
while(~scanf("%d",&n))
{
i=0;
while(n)
{
i++;
n-=lowbit(n);
}
printf("%d\n",i);
}
return 0;
}
相关文章推荐
- Codeforces Round #197 (Div. 2)
- Codeforces Round #198 (Div. 1)
- Codeforces 405E Codeforces Round #238 (Div. 2)E
- Codeforces 407C Codeforces Round #239 (Div. 1)C
- CodeForces 449A - Jzzhu and Chocolate
- CodeForces 449 B. Jzzhu and Cities
- Codeforces Round #265 (Div. 2)
- Codeforces #310 div2 C. Case of Matryoshkas
- 状态压缩DP codeforces 244 Problem C. The Brand New Function 和 codeforces 165 E. Compatible Numbers
- codeforces 16 Problem E fish
- Codeforces round #247 for Div. 2
- Codeforces Round #246 (Div. 2)
- Codeforces #264(div 2)D.Gargari and Permutations
- Codeforces Round #236 (Div. 2)------A,B
- codeforces 257 div2 B
- Codeforces Gym100571A Cursed Query
- Codeforces Gym100342E Minima
- Codeforces Gym100342J Triatrip
- Codeforces Gym100286B Blind Walk (dfs)
- Codeforces Gym100342J Triatrip