CODEFORCES 272B Dima and Sequence <简单技巧 + 类比奇偶数>
2016-08-05 22:32
627 查看
传送门:http://codeforces.com/problemset/problem/272/B
B. Dima and Sequence
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Dima got into number sequences. Now he's got sequence a1, a2, ..., an,
consisting of n positive integers. Also, Dima has got a functionf(x),
which can be defined with the following recurrence:
f(0) = 0;
f(2·x) = f(x);
f(2·x + 1) = f(x) + 1.
Dima wonders, how many pairs of indexes (i, j) (1 ≤ i < j ≤ n) are
there, such that f(ai) = f(aj).
Help him, count the number of such pairs.
Input
The first line contains integer n (1 ≤ n ≤ 105).
The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).
The numbers in the lines are separated by single spaces.
Output
In a single line print the answer to the problem.
Please, don't use the %lld specifier to read or write 64-bit integers in C++. It is preferred
to use the cin, cout streams or the %I64dspecifier.
Examples
input
output
input
output
Note
In the first sample any pair (i, j) will do, so the answer is 3.
In the second sample only pair (1, 2) will do.
#include<iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int r[35];
int main()
{
int N,a,p;
long long s=0;
scanf("%d",&N);
for(int i=0; i<N; i++)
{
p=0;
scanf("%d",&a);
while(a)p+=(a&1),a>>=1;
s+=r[p];
r[p]++;
}
printf("%I64d\n",s);
return 0;
}
B. Dima and Sequence
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Dima got into number sequences. Now he's got sequence a1, a2, ..., an,
consisting of n positive integers. Also, Dima has got a functionf(x),
which can be defined with the following recurrence:
f(0) = 0;
f(2·x) = f(x);
f(2·x + 1) = f(x) + 1.
Dima wonders, how many pairs of indexes (i, j) (1 ≤ i < j ≤ n) are
there, such that f(ai) = f(aj).
Help him, count the number of such pairs.
Input
The first line contains integer n (1 ≤ n ≤ 105).
The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).
The numbers in the lines are separated by single spaces.
Output
In a single line print the answer to the problem.
Please, don't use the %lld specifier to read or write 64-bit integers in C++. It is preferred
to use the cin, cout streams or the %I64dspecifier.
Examples
input
3 1 2 4
output
3
input
35 3 1
output
1
Note
In the first sample any pair (i, j) will do, so the answer is 3.
In the second sample only pair (1, 2) will do.
#include<iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int r[35];
int main()
{
int N,a,p;
long long s=0;
scanf("%d",&N);
for(int i=0; i<N; i++)
{
p=0;
scanf("%d",&a);
while(a)p+=(a&1),a>>=1;
s+=r[p];
r[p]++;
}
printf("%I64d\n",s);
return 0;
}
相关文章推荐
- CODEFORCES 272C Dima and Staircase <细节理解题+简单技巧>
- VS2010开发工具使用技巧<之简单讲解>
- 简单技巧--<javasrcpt>中的src用变量代替
- Dima and Sequence CodeForces - 272B (思维题)
- codeforces 283A - Cows and Sequence 简单数据结构模拟
- CodeForces - 366D Dima and Trap Graph (并查集&技巧)好题
- CODEFORCES 450C Jzzhu and Chocolate <贪心>
- CF 272B Dima and Sequence
- """select * from TRACEUSER where STARTIME >=#2008-8-8 8:00:00# and STARTIME <= #2008-9-3 15:25:42#"""""
- WinForm调用WebService简单实例详解<转>
- WF4B1 的Procedural Activity 之Sequence,Delay,Pick,PickBranch,Parallel,ForEach,ForEach<T>使用
- 140个绝对绝对值得收藏的电脑技巧<1>
- Javascript中最常用的61个经典技巧 <转>
- 一步一步学Remoting之一:从简单开始<转>
- What’s the difference between <system.web> and <system.webServer>?
- <a>的javascript技巧
- it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element
- 获取Windows Shell的简单示例程序<二>
- 国学翟教授<<大智慧之沟通技巧>>经典讲座摘录
- html工作中表格<tbody>标签的使用技巧