P2141 [NOIP 2014 普及组] 珠心算测验

news/2025/10/2 15:13:10/文章来源:https://www.cnblogs.com/wuying250/p/19123648

简易题解

题目大意

给定一个包含 \(n\) 个互不相同的正整数的集合。我们需要找出这个集合中有多少个数字,恰好等于集合中另外两个不同数字的和。

思路分析

题目要求我们找出满足 A = B + C 形式的数字 A,其中 A, B, C 都是给定集合中的数字,并且 BC 必须是不同的数字。

由于 \(n\) 的范围较小(\(3 \le n \le 100\)),且集合中的正整数大小不超过 \(10,000\),我们可以采用比较直接的暴力枚举方法来解决。

具体步骤如下:

  1. 存储和快速查找: 为了方便查找一个数是否存在于集合中,我们可以使用一个布尔数组(或者整型数组作为布尔标记)来标记集合中的所有数。由于数的大小不超过 \(10,000\),我们可以创建一个大小约 \(10,001\) 的布尔数组 exists,将 exists[x] 设为 true(或 1)表示数 x 存在于集合中。

    • 在读取输入的 \(n\) 个正整数时,将它们存入一个数组 a 的同时,也将 exists[a[i]] 标记为 true
  2. 枚举所有可能的和: 遍历集合中所有的数字对 (a[i], a[j]),计算它们的和 sum = a[i] + a[j]

    • 为了确保 BC不同的数,我们让外层循环变量 i\(1\)\(n\),内层循环变量 ji+1\(n\)。这样可以保证 a[i]a[j] 总是集合中两个不同的数,并且不会重复计算 a[i]+a[j]a[j]+a[i]
  3. 检查和是否在集合中: 对于计算出的每一个和 sum

    • 检查 exists[sum] 是否为 true。如果为 true,则说明 sum 这个数字也存在于原始集合中。
    • 此时,sum 就是一个满足条件的数字。
  4. 去重统计: 题目要求的是“有多少个数,恰好等于集合中另外两个(不同的)数之和”。这意味着如果同一个数 X 可以通过不同的组合 (B1+C1)(B2+C2) 得到,它也只算作一个满足条件的数。

    • 为了避免重复统计同一个满足条件的和,当我们发现 sum 满足条件时,应该立即将其从 exists 标记中去除(例如,将 exists[sum] 设为 false0),这样即使后面有其他组合也得到了 sum,也不会再次增加计数器。
    • 每次找到一个满足条件的 sum 并且它还未被统计过时,就将计数器 ans\(1\)

示例说明

输入:
4
1 2 3 4

  1. 初始化: a = [?, 1, 2, 3, 4] (这里数组从1开始), b 数组标记 b[1]=1, b[2]=1, b[3]=1, b[4]=1
  2. 枚举:
    • i=1, j=2: a[1]=1, a[2]=2. sum = 1+2 = 3. b[3]1ans\(1\) 变为 1。并将 b[3] 设为 0 (防止重复统计)。
    • i=1, j=3: a[1]=1, a[3]=3. sum = 1+3 = 4. b[4]1ans\(1\) 变为 2。并将 b[4] 设为 0
    • i=1, j=4: a[1]=1, a[4]=4. sum = 1+4 = 5. b[5]0。不满足。
    • i=2, j=3: a[2]=2, a[3]=3. sum = 2+3 = 5. b[5]0。不满足。
    • i=2, j=4: a[2]=2, a[4]=4. sum = 2+4 = 6. b[6]0。不满足。
    • i=3, j=4: a[3]=3, a[4]=4. sum = 3+4 = 7. b[7]0。不满足。

最终答案 ans = 2

代码注释

#include<bits/stdc++.h> // 包含所有标准库,方便快速编程
using namespace std; // 使用标准命名空间int a[105]; // 定义一个大小为105的整型数组a,用于存储输入的n个正整数。// 题目中n最大为100,所以105足够。
int b[20005]; // 定义一个大小为20005的整型数组b。// b[x] = 1 表示数字x在原始集合中出现过,b[x] = 0 表示未出现或已被统计。// 集合中的正整数最大10000,两数之和最大约20000 (9999+9998),所以20005足够。int main()
{int n; // 定义整型变量n,表示输入的正整数个数。cin>>n; // 从标准输入读取n的值。// 读取n个正整数,并将其存储在数组a中,同时在数组b中标记它们的存在。for(int i=1;i<=n;i++) // 循环n次,从a[1]到a[n]存储。{cin>>a[i]; // 读取第i个正整数。b[a[i]]=1; // 将数组b中对应a[i]的索引位置设为1,表示a[i]这个数存在于集合中。}int ans=0; // 定义一个整型变量ans,用于存储最终的答案(满足条件的数的个数),初始化为0。// 外层循环,枚举第一个加数a[i]for(int i=1;i<=n;i++) {// 内层循环,枚举第二个加数a[j]。j从i+1开始,保证a[i]和a[j]是集合中不同的两个数,// 且避免重复计算a[i]+a[j]和a[j]+a[i]。for(int j=i+1;j<=n;j++) {// 检查它们的和 a[i]+a[j] 是否在原始集合中,并且该和还没有被统计过。// b[a[i]+a[j]] == 1 表示和存在于集合中且未被计入答案。if(b[a[i]+a[j]]==1) {ans++; // 如果满足条件,则答案加1。b[a[i]+a[j]]=0; // 将这个和在b数组中的标记设为0,表示它已经被统计过了,防止重复计数。}}}cout<<ans<<endl; // 输出最终的答案。return 0; // 程序正常结束。
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1081F Tricky Interactor

比较狗蛋的题目。 首先发现随机,一般这种随机题次数也是随机的。 然后发现操作的性质,每两次操作要么不变,要么除了这个区间内的数都翻转,然后我们每次查询 \([i, i]\),先用 \(4\) 次操作将它查出来,再用 \(4\) …

2025.10 做题笔记

MAO!MAO! GIVE ME LOVE 君 gimmick gimmick LOVE どうか笑ってダーリン MAO! GIVE ME LOVE 君 gimmick gimmick LOVE 今夜最後まで 鳴らせ——洛天依《MAO!》AT_arc121_e 思维难度:\(\color{#FFC116} 黄\) *1500 这也…

2025年浮动油封厂家TOP企业品牌推荐排行榜,深度剖析技术创新与产品性能矿用,工程机械,矿山机械,煤矿井下,煤矿机械油封推荐这十家公司!

在煤矿井下机械、矿山机械、硬岩盾构机等恶劣工况设备运行中,浮动油封的性能至关重要,它直接影响设备的使用寿命与运行稳定性。当前市场上浮动油封品牌众多,质量与性能参差不齐,给企业选购带来极大困扰。为帮助企业…

加盟企业网站建设目的wordpress小工具音乐

1. 前言 上篇文章&#xff0c;我们已经将人像分割的ncnn-android-yolov8-seg项目运行起来了&#xff0c;后续文章我们会抽取出Demo中的核心代码&#xff0c;在自己的项目中&#xff0c;来接入人体识别和人像分割功能。 先来看下效果&#xff0c;整个图像的是相机的原图&#…

秦皇岛网站制作微商城建设邀请专家集体会诊网站建设

Authorization 对于很多应用&#xff0c;出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权(Authorization)机制。 授权过程验证您是否具有访问服务器所需数据的权限。 当发送请求时&#xff0c;通常必须包含参数&#xff0c;以确保请求具有访问和返回所需数据…

0.机器人的URDF文件修改

0.URDF简介 URDF全称(United Robotics Description Format)统一机器人描述格式,是一个XML语法框架下用来描述机器人的语言格式。URDF文件可以导入ROS或者Matlab进行仿真,但是事实不一定只能使用URDF,在Isaac gym …

网站怎么看是什么程序做的换服务器wordpress升级

接上篇&#xff0c;根据脚本可将coco128的128张图片&#xff0c;按照比例划分成训练集、测试集、验证集&#xff0c;同时生成相应的标注的labels文件夹&#xff0c;最近再看实例分离比较火的mask rcnn模型&#xff0c;准备进行调试但由于实验室算力不足&#xff0c;网上自己租的…

中小企业网站建设 论文旅游景区网站建设规划

文章目录 前言一、cubemx配置二、代码1.引入库bsp_hal_ps2.cbsp_hal_ps2.h 2.主函数 前言 本文讲解使用cubemx配置PS2手柄实现对手柄的按键和模拟值的读取。 很简单&#xff0c;库已经封装好了&#xff0c;直接就可以了。 文件 一、cubemx配置 这个很简单&#xff0c;不需要…

task1_1.c

include <stdio.h> int main() { printf(" o \n"); printf("\n"); printf("I I\n"); printf(" o \n"); printf("\n"); printf("I I\n"); return 0…

解码AVL树

为什么要关注二叉树的平衡性?—— 从 BST 的缺陷说起 二叉搜索树(BST)的核心优势是 “高效搜索”:利用 “左子树所有节点值<根节点值<右子树所有节点值” 的特性,能从根节点开始快速定位目标节点。但 BST 有个致…

服务发现与注册中心设计:从Eureka到Nacos的CAP权衡——AP与CP的边界,藏在服务列表的一致性里 - 教程

服务发现与注册中心设计:从Eureka到Nacos的CAP权衡——AP与CP的边界,藏在服务列表的一致性里 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

LinuxWindows环境下Nacos3.1.0详细安装部署指南:从零到生产就绪

Linux&Windows环境下Nacos3.1.0详细安装部署指南:从零到生产就绪pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

商务网站创建流程是什么宿州哪家做网站不做

1月16号 MySQL 官方发布 8.3 创新版 和 8.0.36 长期支持版本 (该版本 没有新增功能&#xff0c;更多是修复bug )&#xff0c;本文基于 官方文档 说一下 8.3 版本带来的变化。 一 增加的特性 1.1 GTID_NEXT 支持增加 TAG 选项。 之前的版本中 GTID_NEXTUUID:number &#xff…

哪个网站有律师做的案件有没有资源免费的

应该是挺简单的代码, 记录一下分享. 首先最直接的想法就是使用循环, 用局部变量记录已选的checkbox, 达到最大值就将余下的checkbox都禁止选择, 例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns"…

交通建设集团网站但无法选择(select)wordpress数据库.

文章目录 JAVA13概述语法层面特性switch表达式(预览)文本块(预览) API层次特性重新实现旧版套接字API 其他变化ZGC取消未使用的内存增加废弃和移除增加项移除项废弃项 JAVA13概述 2019年9月17日&#xff0c;国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK…

JAVA SE 基础语法 —— A / 初识 - 指南

JAVA SE 基础语法 —— A / 初识 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

2025年掘进机厂家权威推荐榜:实力品牌与技术创新深度解析

2025年掘进机厂家权威推荐榜:实力品牌与技术创新深度解析在基础设施建设与矿山开采行业高速发展的今天,掘进机作为核心工程装备,其性能优劣直接关系到工程进度与施工安全。随着技术的不断革新,掘进机市场呈现出智能…

2025机械加工供货厂家权威口碑排行:实力与服务深度解析!

2025机械加工供货厂家权威口碑排行:实力与服务深度解析!行业背景在当今制造业蓬勃发展的大背景下,机械加工行业作为制造业的核心支柱之一,扮演着至关重要的角色。随着科技的不断进步和市场需求的日益多样化,机械加…

NOIP 集训日记 2.0

yuanshen,qidong!111

重庆网站seo搜索引擎优化常用的搜索引擎有哪些?

我们是否充分意识到云端所面临的网络安全威胁&#xff1f; 在当今互联互通的世界中&#xff0c;维护安全的环境至关重要。云的出现扩大了潜在威胁的范围&#xff0c;因为它催生了机器身份&#xff08;称为非人类身份 (NHI)&#xff09;及其秘密。随着组织越来越多地转向云原生…