2014NOIP普及组真题 1. 珠心算测验

线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1965

核心思想:

1、题目所求为“有多少个数=其他两个数之和”,故不管5是由1+4组成,还是2+3组成,都只算一次。
2、利用 set自动去重 的功能,只要将结果丢进set,最后输出set的size即可
3、由于题目的 n 只有100,非常小,所以可以用三重循环暴力枚举直接完成

#include <bits/stdc++.h>
#define MAXN 105
using namespace std;

set<int> s; // 利用set有自动去重的功能,只要将结果丢进set,最后输出set的size即可
int n;
int a[MAXN];

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)  cin >> a[i];

    for(int i = 1; i <= n; i++)
        for(int j = i + 1; j <= n; j++)
            for(int k = 1; k <= n; k ++)
            {
                if(a[i]+a[j]==a[k])
                {
                    s.insert(a[k]);
                }
            }

    cout << s.size() << endl;
    return 0;
}
思考:

如果 n 的范围超过 1 0 3 10^3 103,则上述方法会超时,这是可以考虑反向枚举答案,因为a[i]不超过10,000,所以最终的和不超过20000。只要 建20000个桶,最后看哪些桶的结果被标记过了即可

#include <bits/stdc++.h>
#define MAXN 105
using namespace std;

int n, ans = 0;
int a[MAXN];
int res[20005] = {0};

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)  cin >> a[i];

    for(int i = 1; i <= n; i++)
        for(int j = i + 1; j <= n; j++)
            res[a[i] + a[j]] = 1; // 标记为计算过

    for(int i = 1; i <= n; i++)
        if(res[ a[i] ]) ans++;   // 如果a[i]数组中的值在res[i]被标记过,则ans++

    cout << ans << endl;
    return 0;
}

相关推荐

  1. 2014NOIP普及 1. 心算测验

    2024-04-26 06:32:02       15 阅读
  2. 2012NOIP普及 1. 质因数分解

    2024-04-26 06:32:02       10 阅读
  3. 2013NOIP普及 1. 计数问题

    2024-04-26 06:32:02       11 阅读
  4. 2011NOIP普及 1. 数字反转

    2024-04-26 06:32:02       12 阅读
  5. 2014NOIP普及 2. 比例简化

    2024-04-26 06:32:02       12 阅读
  6. 2002NOIP普及 1. 级数求和

    2024-04-26 06:32:02       10 阅读
  7. 2017NOIP普及 2. 图书管理员

    2024-04-26 06:32:02       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 06:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 06:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 06:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 06:32:02       20 阅读

热门阅读

  1. 定时任务管理系统详细设计说明书

    2024-04-26 06:32:02       11 阅读
  2. git commit 提交信息规范

    2024-04-26 06:32:02       15 阅读
  3. jmeter分布式压力测试搭建

    2024-04-26 06:32:02       14 阅读
  4. Ajax&Axios

    2024-04-26 06:32:02       14 阅读
  5. 计算机视觉(CV)技术的优势和挑战

    2024-04-26 06:32:02       14 阅读
  6. vue:使用:element 中弹框中获取table高度无效

    2024-04-26 06:32:02       10 阅读
  7. 6.Linux常用命令---文件目录管理(3)

    2024-04-26 06:32:02       11 阅读
  8. AR模块中通用对账的优化尝试

    2024-04-26 06:32:02       11 阅读
  9. CocoaPods使用详解

    2024-04-26 06:32:02       11 阅读
  10. 39 vue.js

    2024-04-26 06:32:02       12 阅读
  11. MATLAB初学者入门(16)—— 图搜索算法

    2024-04-26 06:32:02       12 阅读
  12. 4、Flink执行模式(流/批)详解(下)

    2024-04-26 06:32:02       14 阅读
  13. golang 锁bug 记录

    2024-04-26 06:32:02       11 阅读