https://www.luogu.org/problemnew/show/P1214

首先暴力枚举可以凑出来的数,对于每个数进行标记。

对于每一个等差数列,当我们知道前两个数后即可以得出整个序列,那么我们就要判断序列中的每一个数是否被标记过,合法记录答案。

最后对于答案进行排序,输出。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <queue>
using namespace std;
#define LL long long
int a[],tot,cnt,n,m;
bool vis[];
struct ahah
{
int s,k;
} ans[];
bool cmp(ahah a,ahah b)
{
return a.k<b.k;
}
void prepare(int x)
{
for(int i=; i<=x; i++)
{
for(int j=; j<=x; j++)
{
a[++tot]=i*i+j*j;
}
}
sort(a+,a++tot);
tot=unique(a+,a++tot)-a-;
for(int i=; i<=tot; i++)vis[a[i]]=;
}
int main()
{ scanf("%d%d",&n,&m);
prepare(m);
for(int i=; i<=tot; i++)
{
if(a[i]>m*m*)break;
for(int j=i+; j<=tot; j++)
{
int d=a[j]-a[i];
if(a[i]+(n-)*d > m*m*)break;
for(int k=; k<=n; k++)
{
if(!vis[a[i]+d*(k-)])break;
if(k==n)ans[++cnt].s=a[i],ans[cnt].k=d;
}
}
}
if(cnt==)printf("NONE");
else
{
sort(ans+,ans++cnt,cmp);
for(int i=; i<=cnt; i++)printf("%d %d\n",ans[i].s,ans[i].k);
}
}
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <queue>
using namespace std;
#define LL long long
int a[],tot,cnt,n,m;
bool vis[];
struct ahah
{
int s,k;
} ans[];
bool cmp(ahah a,ahah b)
{
return a.k<b.k;
}
void prepare(int x)
{
for(int i=; i<=x; i++)
{
for(int j=; j<=x; j++)
{
a[++tot]=i*i+j*j;
}
}
sort(a+,a++tot);
tot=unique(a+,a++tot)-a-;
for(int i=; i<=tot; i++)vis[a[i]]=;
}
int main()
{ scanf("%d%d",&n,&m);
prepare(m);
for(int i=; i<=tot; i++)
{
if(a[i]>m*m*)break;
for(int j=i+; j<=tot; j++)
{
int d=a[j]-a[i];
if(a[i]+(n-)*d > m*m*)break;
for(int k=; k<=n; k++)
{
if(!vis[a[i]+d*(k-)])break;
if(k==n)ans[++cnt].s=a[i],ans[cnt].k=d;
}
}
}
if(cnt==)printf("NONE");
else
{
sort(ans+,ans++cnt,cmp);
for(int i=; i<=cnt; i++)printf("%d %d\n",ans[i].s,ans[i].k);
}
}

洛谷 P1214 等差数列的更多相关文章

  1. 洛谷P1214 [USACO1.4]等差数列 Arithmetic Progressions

    P1214 [USACO1.4]等差数列 Arithmetic Progressions• o 156通过o 463提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题 ...

  2. 【洛谷P1214】等差数列

    题目大意:列出从一个给定上界的双平方数集合中选出若干个数,组成长度为 N 的等差数列的首项和公差. 题解:首先,因为是在双平方数集合上的等差数列,而且根据题目范围可知,上界不超过 2e5,可以先打表, ...

  3. 洛谷 P4559: bzoj 5319: [JSOI2018]军训列队

    题目传送门:洛谷 P4559. 题意简述: 有 \(n\) 个学生,编号为 \(i\) 的学生有一个位置 \(a_i\). 有 \(m\) 个询问,每次询问编号在 \([l,r]\) 区间内的学生跑到 ...

  4. 【洛谷】【洛谷月赛】4月月赛Round 1/2

    洛谷月赛“月”来“月”丧了,一月更比一月丧,做得我十分不“月”…… 4月的两轮月赛,都只会T1,就写一下吧,等待后续更新…… 先看看Round1的T1: [R1T1] 网址:点我 [题意简述] 给定一 ...

  5. [洛谷P3228] [HNOI2013]数列

    洛谷题目链接:[HNOI2013]数列 题目描述 小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨.股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N.在疯涨的K天中小T观察到: ...

  6. 洛谷 P2261 [CQOI2007]余数求和

    洛谷 一看就知道是一个数学题.嘿嘿- 讲讲各种分的做法吧. 30分做法:不知道,这大概是这题的难点吧! 60分做法: 一是直接暴力,看下代码吧- #include <bits/stdc++.h& ...

  7. 【洛谷4933】大师(DP)

    题目: 洛谷4933 分析: (自己瞎yy的DP方程竟然1A了,写篇博客庆祝一下) (以及特斯拉电塔是向Red Alert致敬吗233) 这里只讨论公差不小于\(0\)的情况,小于\(0\)的情况进行 ...

  8. 洛谷 p6858 深海少女与胖头鱼 洛谷月赛 期望dp

    洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 ( ...

  9. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

随机推荐

  1. [Xcode 实际操作]一、博主领进门-(7)使用不同类型的iOS模拟器

    目录:[Swift]Xcode实际操作 本文将演示使用不同类型的iOS模拟器. 点击[运行]按钮,打开模拟器,并预览当前的项目. 当向苹果商店提交应用时,也需要同时提交应用的截图. 对当前的应用的界面 ...

  2. 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记

    在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. Larav ...

  3. JQuery Easyui/TopJUI 多表头创建

    JQuery Easyui/TopJUI 多表头创建 废话不多说,直接贴上代码. html <div data-toggle="topjui-layout" data-opt ...

  4. 51Nod 1098 最小方差 (数论)

    #include <iostream> #include <cstdio> #include <algorithm> using namespace std; ty ...

  5. Hexo - CNAME文件在每次部署后就没了

    问题 一般我们会将Hexo博客搭建到Github上,如果在Github上为其配置一个自定义的域名时,会自动在项目仓库根目录下新添加一个CNAME文件.但是这里有个问题,如果将Hexo博客重新部署一遍后 ...

  6. layui 单选框选中事件

    <div class="layui-form-item" pane=""> <label class="layui-form-lab ...

  7. 爬虫的UA池和代理池

    爬虫的UA池和代理池   一.下载中间件 先祭出框架图: 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. - 作用: (1)引擎将请求传递给下 ...

  8. Oracle / PLSQL写语句 常用的几个函数

    下面开始记录一下,自己在Oracle或者PLSQL常用的几个函数, 1add_months 增加或减去月份2. last_day(sysdate) 返回日期的最后一天3. months_between ...

  9. [已读]JavaScript高级程序设计(第2版)

    经典红皮书~~

  10. yii2 操作数据库

    1.查询 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()- ...