HDU-1303 题解
Doubles
题目大意
计算一个数组中存在多少满足二倍关系的数对
Time: 1000 ms
Memory: 32768 kB
解题思路及分析
二分
枚举元素,直接在数组中搜
a[i]/2
只是注意判断下a[i]是否偶数
AC代码
#include <bits/stdc++.h>
using namespace std;
int _;
int a[25];
int sz = 0, ans = 0;
int main()
{
while (1)
{
sz = 0;
ans = 0;
while (1)
{
scanf("%d", &_);
if (_ == -1) return 0;
if (_ == 0) break;
a[sz++] = _;
}
sort(a, a + sz);
for (int i = 0; i < sz; i++)
{
if(a[i] % 2 == 0 && binary_search(a, a + sz, a[i] / 2))
{
ans++;
}
}
printf("%d\n", ans);
}
return 0;
}