其他分享
首页 > 其他分享> > 洛谷 P2141 珠心算测验

洛谷 P2141 珠心算测验

作者:互联网

题目来源于洛谷

https://www.luogu.com.cn/problem/P2141

题目描述

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

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

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

(本题目为2014NOIP普及T1)

输入格式

共两行,第一行包含一个整数nn,表示测试题中给出的正整数个数。

第二行有nn个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

输出格式

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

输入输出样例

输入 #1
4
1 2 3 4
输出 #1
2

AC代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n;
 6     cin>>n;
 7     int a[107];
 8     int flag[10007];
 9     int ifflag[10007];
10     for(int h=0;h<10007;h++) 
11     {
12         flag[h]=0;
13         ifflag[h]=0;
14     }
15     for(int h=0;h<n;h++)
16     {
17         cin>>a[h];
18         flag[a[h]]=1;
19     }
20     sort(a,a+n);
21     for(int h=0;h<n;h++)
22     {
23         for(int i=h+1;i<n;i++)
24         {
25             int temp=a[h]+a[i];
26             if(temp>a[n-1]) break;
27             if(flag[temp])
28                 ifflag[temp]=1;
29         }
30     }
31     int anser=0;
32     for(int h=0;h<10007;h++)
33         if(ifflag[h]) anser++;
34     cout<<anser<<endl;
35     return 0;
36 }

坑点

1. 最后结果是统计满足条件的 和 的个数,而不是满足条件的 式子 的个数

标签:正整数,P2141,int,个数,flag,洛谷,测验题,珠心算
来源: https://www.cnblogs.com/muhuai-bokeyuan/p/14802484.html