首页 > 编程语言(其他) > 珠心算测验(NOIP2014普及组T1)

珠心算测验(NOIP2014普及组T1)

标 签:NOIP2014 T1

【题目描述】
珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练, 既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。
某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?
最近老师出了一些测验题,请你帮忙求出答案。
【输入格式】
输入共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。
第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。
【输出格式】
输出共一行,包含一个整数,表示测验题答案。
【样例输入】
4
1 2 3 4
【样例输出】
2
【数据范围】
3<=N<=1000
测验题给出的正整数大小不超过 1000000
【分析】
注意是求的是数字的个数而不是组合数!
所以用一个标记数组存一下就好,很简单。

#include<iostream>
using namespace std;
int a[2010],n;
bool b[2000010];
int main()
{
  cin>>n;
  for (int i=0;i<n;i++) cin>>a[i];
  for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
      if (a[i]!=a[j]) b[a[i]+a[j]]=true;
  int ans=0;
  for (int i=0;i<n;i++)
    if (b[a[i]]) ans++;
  cout<<ans<<endl;
  return 0;
}
作者:qq_31640513 发表于2017/1/8 18:27:01 原文链接
阅读:269 评论:0 查看评论
分类: 编程语言(其他) 标签: