ACM集训的Training Day 3的A题。。。
A. 等差数列
一.题目描述:
一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列。
在这个问题中a是一个非负的整数,b是正整数。写一个程序来找出在双平方数集合(双平方数集合是所有能表示成p的平方 + q的平方的数的集合,其中p和q为非负整数)S中长度为n的等差数列。
二.格式
时间限制: 5 秒
题目名称: ariprog
输入格式:
(file ariprog.in)
第一行: N(3<= N<=25),要找的等差数列的长度。
第二行: M(1<= M<=250),搜索双平方数的上界0 <= p,q <= M。
输出格式:
(file ariprog.out)
如果没有找到数列,输出“NONE”。
如果找到了,输出一行或多行, 每行由二个整数组成:a,b。 a为等差数列的第一个值,b为等差数列的公差。
这些行应该先按b排序再按a排序。
所求的等差数列将不会多于10,000个。
三.
样例输入:
5
7
样例输出:
1 4
37 4
2 8
29 8
1 12
5 12
13 12
17 12
5 20
2 24
分析:
对于限制时间比较宽松的这个题呀~~~~~暴力穷举就可以了~~~~~~
按照题意,先是确定所有的双平方数,然后根据给的上限,把范围内的双平方数储存起来。
(哎呀,好懒啊,不想写了=.=)
我的代码里有注释。。。以后有闲时间了再来补充吧。╮(╯▽╰)╭
不说了,上代码。
#include<iostream>
#include<cstring>
using namespace std;
bool is[]; //记录谁是双平方数的bool数组
int a[]; //由于所给上限是250,则最大的数为250*250*2
int main(){ //n是给的等差数列的长度,top是所给搜索双平方数的上界
int n,top,k=,tole,num=; //k初始化为0,最后为的储存双平方数数组的总长度。
scanf("%d%d",&n,&top); //tole为公差 ,num记录满足条件的数组的个数 ,用于判断是否在后面的bool f=0时
for(int i=;i<=top;i++) //把所有的数是否是双平方数记录下来
for(int j=;j<=top;j++)
is[i*i+j*j]=; //标记范围内的所有双平方数
for(int i=;i<=top*top*;i++) //把上限范围内的双平方数储存起来
if(is[i])
a[k++]=i; //一共有k个数 ,a[k]数组储存所有的双平方数
int maxt=(top*top*)/(n-); //前面先定义了公差为tole,maxt为公差的最大范围 前面的num为记录等差数列的个数
for (tole=;tole<=maxt;tole++){ //tole为公差 ,a[i]为首项 ,对于每一个可能的公差,去检查对于a[i]每一个元素,是否有等差数列的可能
for(int i=;a[i]+(n-)*tole<=top*top*&&i<k;i++){ //a[i]+(n-1)*l为第i项
bool f=;
for(int j=;j<n&&f;j++) //检查对于每个等差数列,它的每一项元素都在双平方数组中
if(!is[a[i]+j*tole]){ //如果有一项没有在bool数组里,则令bool值f为false
f=;
}
if(f){ //在经过对等差数列每一项检查后,f仍为真,则满足题意
printf("%d %d\n", a[i],tole); //满足条件的数列,输出首项和公差
num++; //num记录满足条件的数列的个数
}
}
}
if (!num) //num为0,则输出NONE
printf("NONE");
return ;
}
ACM集训的Training Day 3的A题。。。的更多相关文章
- yzm10的ACM集训小感
		
7月30号,ACM集训进行了两周,一切都已on the right way.这时的我适时地从题海中探出头,其实除了刷题,也该写点什么来总结下过去.首先,在第一周里,我学习了数据结构,知道了STL这么一 ...
 - ACM:  Gym 101047K Training with Phuket's larvae - 思维题
		
Gym 101047K Training with Phuket's larvae Time Limit:2000MS Memory Limit:65536KB 64bit IO F ...
 - ACM集训
		
2019-07-18 09:06:10 emmm.... 昨天5个小时做了一道题,心情复杂,不着急慢慢来 Ivan recently bought a detective book. The book ...
 - ACM集训的Day3 B。。。盲目搜索之DFS。。。
		
milk 一.题目描述: gzp有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌 ...
 - ACM集训的1B。。。。黑色星期五。。。。2333333
		
题目: 印象中有好多个13号是星期五,13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900 ...
 - ACM集训的第。。。诶~不知道第几题=.=
		
题目: 郭铮鹏认为排序是一种很频繁的计算任务,所以他考虑了一个简单的问题:现在最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2 ...
 - ACM集训的第一题
		
对于一群NP(2<=NP<=10)个要互送礼物的朋友,郭铮鹏要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人 ...
 - 除法(Division ,UVA 725)-ACM集训
		
参考:http://www.cnblogs.com/xiaobaibuhei/p/3301110.html 算法学到很弱,连这么简单个问题都难到我了.但我偏不信这个邪,终于做出来了.不过,是参照别人的 ...
 - 矩形嵌套问题-ACM集训
		
参考 http://blog.csdn.net/xujinsmile/article/details/7861412 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形 ...
 
随机推荐
- iOS开发UI篇—核心动画(转场动画和组动画)
			
转自:http://www.cnblogs.com/wendingding/p/3801454.html iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的 ...
 - Unity VR全景漫游
			
一.前言: 最近VR如火如茶,再不学习就落伍啦.有空闲时间,跟Rodolfo一起研究下相关知识. 本文介绍了两种方法来制作VR场景: 方法一:通过6张小图搭建的VR场景 方法二:通过一张全景图来搭建V ...
 - SpringBoot实战配置
			
http://blog.csdn.net/sun_t89/article/details/51944252 http://www.cnblogs.com/kreo/p/4423362.html
 - 《图形学》实验六:中点Bresenham算法画圆
			
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 ...
 - hadoop入门(3)——hadoop2.0理论基础:安装部署方法
			
一.hadoop2.0安装部署流程 1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费) 2.使用RPM包安装部署:Apache ...
 - EventBus 一
			
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
 - Codeforces 717G Underfail(最小费用最大流 + AC自动机)
			
题目 Source http://codeforces.com/problemset/problem/717/G Description You have recently fallen throug ...
 - android Context 持有导致的内存泄漏
			
Context使用场景 为了防止Activity,Service等这样的Context泄漏于一些生命周期更长的对象,可以使用生命周期更长的ApplicationContext,但是不是所有的Conte ...
 - 【Linux】df命令 ,查看磁盘容量。
			
Oracle 导库时,失败,原因为磁盘满了, 记录下查看磁盘容量的指令 1.命令格式: df [选项] [文件] -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K= ...
 - 【Alpha】Daily Scrum Meeting第二次
			
一.Daily Scrum Meeting照片 二.Burndown Chart 由于此次项目延期7天,因此Burndown Chart较第一次会变宽 三.项目进展 登陆模块已经能和服务器交流 可以使 ...