【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)
  VJeqq9jk2lCR 2023年11月19日 10 0

[NOIP2014 普及组] 珠心算测验

题目描述

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。

某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?

最近老师出了一些测验题,请你帮忙求出答案。

(本题目为 2014NOIP 普及 T1)

输入格式

共两行,第一行包含一个整数 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_ci,表示测试题中给出的正整数个数。

第二行有 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_ci 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

输出格式

一个整数,表示测验题答案。

样例 #1

样例输入 #1

4
1 2 3 4

样例输出 #1

2

提示

【样例说明】

【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_ci_03,故满足测试要求的答案为 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_#include_04

注意,加数和被加数必须是集合中的两个不同的数。

【数据说明】

对于 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_ci_05 的数据,【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_#include_06,测验题给出的正整数大小不超过 【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)_数据_07

思路

用集合存储符合条件的和的值,输出该集合元素个数即可。

AC代码

#include <iostream>
#include <set>
#define AUTHOR "HEX9CF"
using namespace std;

int main()
{
    int n;
    int cnt = 0;
    set<int> num;
    set<int> sum;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int in;
        cin >> in;
        num.insert(in);
    }
    for (set<int>::iterator it1 = num.begin(); it1 != num.end(); it1++)
    {
        for (set<int>::iterator it2 = it1; it2 != num.end(); it2++)
        {
            for (set<int>::iterator it3 = num.begin(); it3 != num.end(); it3++)
            {
                if (*it1 + *it2 == *it3 && it1 != it2)
                {
                    sum.insert(*it3);
                }
            }
        }
    }
    cout << sum.size() << endl;
    return 0;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
VJeqq9jk2lCR