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题。。。的更多相关文章

  1. yzm10的ACM集训小感

    7月30号,ACM集训进行了两周,一切都已on the right way.这时的我适时地从题海中探出头,其实除了刷题,也该写点什么来总结下过去.首先,在第一周里,我学习了数据结构,知道了STL这么一 ...

  2. ACM: Gym 101047K Training with Phuket's larvae - 思维题

     Gym 101047K Training with Phuket's larvae Time Limit:2000MS     Memory Limit:65536KB     64bit IO F ...

  3. ACM集训

    2019-07-18 09:06:10 emmm.... 昨天5个小时做了一道题,心情复杂,不着急慢慢来 Ivan recently bought a detective book. The book ...

  4. ACM集训的Day3 B。。。盲目搜索之DFS。。。

    milk 一.题目描述: gzp有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌 ...

  5. ACM集训的1B。。。。黑色星期五。。。。2333333

    题目: 印象中有好多个13号是星期五,13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900 ...

  6. ACM集训的第。。。诶~不知道第几题=.=

    题目: 郭铮鹏认为排序是一种很频繁的计算任务,所以他考虑了一个简单的问题:现在最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2 ...

  7. ACM集训的第一题

    对于一群NP(2<=NP<=10)个要互送礼物的朋友,郭铮鹏要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人 ...

  8. 除法(Division ,UVA 725)-ACM集训

    参考:http://www.cnblogs.com/xiaobaibuhei/p/3301110.html 算法学到很弱,连这么简单个问题都难到我了.但我偏不信这个邪,终于做出来了.不过,是参照别人的 ...

  9. 矩形嵌套问题-ACM集训

    参考 http://blog.csdn.net/xujinsmile/article/details/7861412 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形 ...

随机推荐

  1. jetty 内嵌服务

    pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncodin ...

  2. HTML5本地缓存数据

    //HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...

  3. 触发器--mysql

    SHOW TRIGGERS;查看所有触发器 create trigger tg1 after insert on user for each row beginupdate user set name ...

  4. php接口

    如果要继承多个类的方法规范,用接口,因为抽象类只能继承一个: 如果要共享一个方法体内容,用抽象类: <?php //接口是为了规范实现它的子类,以达到统一的目的 //接口不能被实例化 inter ...

  5. WCF服务承载(笔记)

    自托管(也做自承载) 承载 WCF 服务最灵活.最便捷的方法就是进行自承载.要能够自承载服务,必须满足两个条件.第一,需要 WCF 运行时:第二,需要可以承载 ServiceHost 的托管 .NET ...

  6. MEF Parts Sample

    namespace Microshaoft.MEF.Contracts { using System; public delegate void ExceptionEventHandler<TS ...

  7. 已解决:ECSHOP安装出现date_default_timezone_get()问题

    今天在安装ECSHOP时遇到警告如下: Warning: date_default_timezone_get(): It is not safe to rely on the system's tim ...

  8. JS冒泡排序(数组)

    冒泡排序是把数组相邻的两个值进行比较,然后根据条件执行相应的命令 var arr = [0,4,8,5,2,7,1,3,6,9]; for(var s = 0;s<arr.length;s++) ...

  9. 【原】PHP初体验

    1. 相关内容介绍 1>互联网开发 互联网:传统互联网.移动互联网 互联网开发:前端开发(前台).后台开发(后端.服务端) 前端开发:视觉展示(用户界面).用户交互.采集输入信息 后台开发:管理 ...

  10. Windows Server 2008 R2 DNS 服务器迁移