NOIP2014-普及组复赛-第一题-珠心算测验

题目描述 Description

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

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

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

(本题目为2014NOIP普及T1)

输入输出格式 Input/output

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

输入输出样例 Sample input/output

样例测试点#1

输入样例:

4
1 2 3 4

输出样例:

2

【样例说明】

由1+2=3,1+3=4,故满足测试要求的答案为2。注意,加数和被加数必须是集合中的两个不同的数。

【数据说明】

对于100%的数据,3 ≤ n ≤ 100,测验题给出的正整数大小不超过10,000。

思路:这题可以分成两个数组,把其中一个排序,再判断,输出即可。

代码如下:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i,j,k,m,n,ans=0;
 5     int a[101],p[101];//两个相同的数组,a数组排完序后存到p数组里面去
 6     scanf("%d",&n);
 7     for(i=1;i<=n;i++)//输入数字到a数组里面
 8     {
 9         scanf("%d",&a[i]);
10     }
11     for(i=1;i<n;i++)//排序a数组中的每个数
12          for(j=i+1;j<=n;j++)
13               if(a[i]>a[j])
14               {
15                     k=a[i];
16                   a[i]=a[j];
17                   a[j]=k;
18               }
19     for(i=1;i<n-1;i++)//从第一个向后扫
20         for(j=i+1;j<n;j++)//从第二个与第一个往后加
21             for(k=j+1;k<=n;k++)
22                 if(a[i]+a[j]==a[k])//如果发现一个符合题意的,p数组里面的该数变为1
23                 {
24                     p[k]=1;
25                 }
26     for(i=1;i<=n;i++)//从前向后扫,每个元素都相加
27     {
28         ans+=p[i];
29     }
30     printf("%d\n",ans);
31     return 0;
32 }
时间: 2024-12-21 23:16:20

NOIP2014-普及组复赛-第一题-珠心算测验的相关文章

NOIP2005-普及组复赛-第一题-陶陶摘苹果

题目描述 Description 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目.假设她碰到苹果,苹果就会掉下来. 输入输出格式 Input/output 输入格式:输入文件apple.in包括两行数据.第一行包含10个100到200之间(包括100和200

NOIP2010-普及组复赛-第一题-计数问题

题目描述 Description 试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到 11 中,即在 1.2.3.4.5.6.7.8.9.10.11 中,数字 1 出现了 4 次. 输入输出格式 Input/output 输入格式:输入文件名为 count.in. 输入共 1 行,包含 2 个整数 n.x,之间用一个空格隔开.输出格式:输出文件名为 count.out. 输出共 1 行,包含一个整数,表示 x 出现的次数. 输入输出样例 Samp

NOIP2001-普及组复赛-第一题-数的计算

题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入输出格式 Input/output 输入格式:一个自然数n(n<=1000)输出格式:一个整数,表示具有该性质数的个数. 输入输出样例 Sample input/output 样例测

NOIP2015-普及组复赛-第一题-金币

题目描述 Description 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后两天(第二天和第三天),每天收到两枚金币:之后三天(第四.五.六天),每天收到三枚金币:之后四天(第七.八.九.十天),每天收到四枚金币……:这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币.请计算在前K天里,骑士一共获得了多少金币. 输入输出格式 Input/output 输入格式:输入文件只有1行,包含一个正整数K,表示发放

NOIP2012-普及组复赛-第一题-质因数分解

题目描述 Description 已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入输出格式 Input/output 输入格式:输入只有一行,包含一个正整数n.输出格式:输出只有一行,包含一个正整数p,即较大的那个质数. 输入输出样例 Sample input/output 样例测试点#1 输入样例: 21 输出样例: 7 思路:这题是一个十分简单数学问题,可以把质因数从2到n的平方根寻找,如果发现一个数能刚好被n整除,输出大的那个(用n除以那个数) 代码如下: 1 #in

NOIP2010-普及组复赛-第一题-数字统计

题目描述 Description 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数. 比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6次. 输入输出格式 Input/output 输入格式:输入文件名为 two.in. 输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开.输出格式:输出文件名为 two.o

NOIP2011-普及组复赛-第一题-数字反转

题目描述 Description 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入输出格式 Input/output 输入格式: 输入文件名为reverse.in .  输入共1 行,一个整数 N.输出格式: 输出文件名为reverse.out .  输出共1行,一个整数,表示反转后的新数. 输入输出样例 Sample input/output 样例测试点#1 输入样例: [样例输

[NOIP2014普及组]珠心算测验

题目地址: ayyzvijos:http://pingce.ayyz.cn/vijos/Problem_Show.asp?id=2015 vijos:https://vijos.org/p/1911 COGS:http://218.28.19.228/cogs/problem/problem.php?pid=1809 题目来源:NOIP2014普及组第一题 问题分析:作为普及组的第一题,这个难度是可以的,而且有坑点.初步读题,我们会想到这样一种情况: count.in count.out 5 1

[NOIP2014普及组]螺旋矩阵

题目地址: ayyzvijos:http://pingce.ayyz.cn/vijos/Problem_Show.asp?id=2017 vijos:https://vijos.org/p/1913 COGS:http://218.28.19.228/cogs/problem/problem.php?pid=1811 题目来源:NOIP2014普及组第三题 问题分析:这道题的内容很易懂,而且容易实现,即直接构造出一个螺旋矩阵,输出对应位置即可.这样的方法大概可以过掉50%的数据.但是,对于100