洛谷P2141珠心算测验 (枚举&&暴力解法)

简介: 洛谷P2141珠心算测验 (枚举&&暴力解法)

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

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

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

(本题目为2014NOIP普及T1)

输入格式 共两行,第一行包含一个整数nnn,表示测试题中给出的正整数个数。
第二行有nnn个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。
输出格式 一个整数,表示测验题答案。

刚开始的时候直接就枚举+暴力,不加分析,导致拿了20%的得分率,后来经过多次测试,才知题目有隐藏条件

这道题最重要的就是去重,只要和相同都算是重复,如:1+5=6,2+4=6 和相同只能算是一种情况

以下是枚举加暴力解法

#include<iostream>
using namespace std;
int main()
{
 int n,count=0,a,b,c;
 cin>>n;
 int arr[n],brr[n];
 for(int i=0; i<n; i++){
  cin>>arr[i];
  brr[i]=1;   //注意了,很多人不能的满分就是因为
      //没有设置这个标量
 }
 for(a=0;a<n-1;a++)
  for(b=a+1;b<n;b++)
  {
   for(c=0; c<n;c++ )
   {
    if(c==a||c==b) continue;
    if(arr[a]+arr[b]==arr[c]&&brr[c]==1) {
     count++;
     brr[c]=0;   //当有两个数的和是 arr[c] 后,把brr[c] 置0;
      //表示这个数的两个因子已经得出,从而达到去重的目的
     break;
    }
   }
  }
 cout<<count;
 } 
相关文章
|
6月前
|
自然语言处理 编译器
编译原理复习五:属性文法与三地址码的生成(附题目与答案 超详细)
编译原理复习五:属性文法与三地址码的生成(附题目与答案 超详细)
463 0
|
5月前
|
C语言
每日刷题——杭电2156.分数矩阵和杭电2024.C语言合法标识符
每日刷题——杭电2156.分数矩阵和杭电2024.C语言合法标识符
37 1
|
5月前
|
算法 JavaScript 程序员
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
程序员必知:《程序设计与算法(二)算法基础》《第一周枚举》熄灯问题POJ
32 0
|
算法
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
52 0
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
【每日易题】七夕限定——单身狗问题以及进阶问题位运算法的深入探讨
102 0
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
[算法刷题题解笔记] 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [枚举]
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
蓝桥杯-经典枚举案例
必须要一个数组来存放0-9每个卡片的余额,每个数组下标对应各自卡片【下标为0代表卡片0的数量】
|
Java C语言 C++
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
|
存储 Java 数据挖掘
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)!
Java基础知识练习(减肥计划、逢七过、不死神兔、百钱百鸡、数组元素求和、数组内容相同、查找、反转、评委打分)