空间换时间 - 珠心算测验

珠心算测验

时间限制: 1 Sec  内存限制:
128 MB

题目描述

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 最近老师出了一些测验题,请你帮忙求出答案。

输入

输入共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。 第二行有n个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。3<=n<=100,给出的正整数大小不超过10000

输出

输出共一行,包含一个整数,表示测验题答案。

样例输入

4
1 2 3 4

样例输出

2

提示

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

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<list>

using namespace std;
int arr[102], num[20002];

int main()
{
	int n, sum = 0;
	cin >> n;
	for (int i = 0; i < n; i++)scanf("%d", &arr[i]);
	for (int i = 0; i < n; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			num[arr[i] + arr[j]]++;//得到所有可能的结果并在数组num中标记
		}
	}
	for (int i = 0; i < n; i++)
	{
		if (num[arr[i]]>0)sum++;//如果在数组中值大于0,则存在解
	}
	cout << sum << endl;
	return 0;
}
时间: 2024-11-12 20:01:37

空间换时间 - 珠心算测验的相关文章

NOIP201401珠心算测验

珠心算测验  问题描述]  珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及.  某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法.他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?  最近老师出了一些测验题,请你帮忙求出答案.  [输入] 输入文件名为count.in.  输入共两行,第一行包含一个整数n,表示测试题中给

算法题:复制复杂链表之空间换时间法

说明:本文仅供学习交流,转载请标明出处,欢迎转载!  题目:复制一个复杂链表,所谓复杂链表指的是每个节点含有两个指针,一个指向单链表的下一个结点,一个指向单链表中的任意某个结点,或者该指针为空. 为了方便起见,我们将待复制的链表称为原型链表,将复制后的新链表称为复制链表,将指向下一个结点的指针定义为next指针,指向其他位置的指针定义为any指针.<剑指offer>上给出了三种解决方法:(1)常规法:(2)空间换时间法:(3)紧随复制法.书上并给出了第三种方法的实现代码.这里我根据书上的提示,

用空间换时间,内存数据库不止于快

近年来随着内存价格的下跌内存数据库正变得日益流行起来,内存数据库的性能也有了飞跃式的发展.然而很多开发人员在考虑内存数据库时只想到了速度,这无疑忽视了内存技术真正的潜力. 内存提供的不仅仅是更快的速度,它也是一种以存储空间换时间的方式.很多开发人员对于内存数据库的使用有一些疑虑,下面我们就来一一说明: 1.内存数据库运行比较快.除了快还有什么别的吗?我们知道内存的读写比硬盘快得多,所以将表全都加载到内存中就可以达到很高的读写速度.虚拟内存的大小受到交换分区的限制而通常交换分区的大小是内存的一到两

求质数数量 - 空间换时间

质数:被自己本身和1整出的数 int getPrimeCount(int value){ int count = 0; int arr[301] = {0};// 0 - is prime , 1 - is not prime int num = (int)sqrt((float)value); for(int i = 2; i <= num ; ++i){ if (!arr[i]){ for(int j = i; i * j < value; ++j){ arr[i * j] = 1; }

递归小题中的空间换时间思想

题目: 如数: 1  1  2  3   5   8   13   21  34  55 ...... 序号: 0  1  2  3   4   5   6     7    8    9 ...... 由用户输入序号,输出对应的数值. 效果: 实现代码: #include <stdio.h> int bian(int num); //static int shu[100]={1,1}; int main() { int num; while ( printf("请输入编号数:&qu

代码重构,空间换时间,dictionary 不要用object ,需明确指定类型

代码重构时,因为修改数据库成本很大,于是,可以在缓存中存储一份期待状态的数据结构: 例如,状态转换: 目标状态,中间件状态,原状态,三个状态之间转换时, 原来的逻辑是:目标状态<--中间件状态<--原状态,可以改为<原状态,中间件状态>-->目标状态, 一般情况下,服务器搭建在虚拟机上时,一般是存储位置大小不再考虑范围之内,cpu的计算能力是共享的,所以一个原则是::用"空间"换"时间",, 貌似: hashtable 和 dictio

Elasticsearch实战 | 必要的时候,还得空间换时间!

1.应用场景 实时数据流通过kafka后,根据业务需求,一部分直接借助kafka-connector入Elasticsearch不同的索引中. 另外一部分,则需要先做聚类.分类处理,将聚合出的分类结果存入ES集群的聚类索引中.如下图所示: 业务系统的分层结构可分为:接入层.数据处理层.数据存储层.接口层. 那么问题来了? 我们需要基于聚合(数据处理层)的结果实现检索和聚合分析操作,如何实现更快的检索和更高效的聚合分析效果呢? 2.方案选型 方案一: 只建立一个索引,aggs_index. 数据处

2014珠心算测验

题目描述 Description 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法.他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?  最近老师出了一些测验题,请你帮忙求出答案. 输入描述 Input Description 输入共两行,第一行包含一个整数n,表示测试题

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

题目描述 Description 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法.他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 最近老师出了一些测验题,请你帮忙求出答案. (本题目为2014NOIP普及T1) 输入输出格式 Input/output 输入格式:输入