当前位置: 首页> 教育> 高考 > 武汉网站制作服务_软件下载网址_百度经验悬赏令_经典软文推广案例

武汉网站制作服务_软件下载网址_百度经验悬赏令_经典软文推广案例

时间:2025/7/9 13:27:12来源:https://blog.csdn.net/m0_65641514/article/details/144460749 浏览次数:0次
武汉网站制作服务_软件下载网址_百度经验悬赏令_经典软文推广案例

在这里插入图片描述
》》》点我查看「视频」详解》》》

[GESP202412 四级] Recamán

题目描述

小杨最近发现了有趣的 Recamán 数列,这个数列是这样生成的:

  • 数列的第一项 a 1 a_1 a1 1 1 1
  • 如果 a k − 1 − k a_{k-1}-k ak1k 是正整数并且没有在数列中出现过,那么数列的第 k k k a k a_k ak a k − 1 − k a_{k-1}-k ak1k,否则为 a k − 1 + k a_{k-1}+k ak1+k

小杨想知道 Recamán 数列的前 n n n 项从小到大排序后的结果。手动计算非常困难,小杨希望你能帮他解决这个问题。

输入格式

第一行,一个正整数 n n n

输出格式

一行, n n n 个空格分隔的整数,表示 Recamán 数列的前 n n n 项从小到大排序后的结果。

样例 #1

样例输入 #1

5

样例输出 #1

1 2 3 6 7

样例 #2

样例输入 #2

8

样例输出 #2

1 2 3 6 7 12 13 20

提示

样例解释

对于样例 1, n = 5 n=5 n=5

  • a 1 = 1 a_1=1 a1=1
  • a 1 − 2 = − 1 a_1-2=-1 a12=1,不是正整数,因此 a 2 = a 1 + 2 = 3 a_2=a_1+2=3 a2=a1+2=3
  • a 2 − 3 = 0 a_2-3=0 a23=0,不是正整数,因此 a 3 = a 2 + 3 = 6 a_3=a_2+3=6 a3=a2+3=6
  • a 3 − 4 = 2 a_3-4=2 a34=2,是正整数,且没有在数列中出现过,因此 a 4 = a 3 − 4 = 2 a_4=a_3-4=2 a4=a34=2
  • a 4 − 5 = − 3 a_4-5=-3 a45=3,不是正整数,因此 a 5 = a 4 + 5 = 7 a_5=a_4+5=7 a5=a4+5=7

a 1 , a 2 , a 3 , a 4 , a 5 a_1,a_2,a_3,a_4,a_5 a1,a2,a3,a4,a5 从小到大排序的结果为 1 , 2 , 3 , 6 , 7 1,2,3,6,7 1,2,3,6,7

数据范围

对于所有数据点,保证 1 ≤ n ≤ 3 000 1\le n\le 3\, 000 1n3000

AC_Code

#include <bits/stdc++.h>
using namespace std;
const int N = 3010;
int w[N];int main()
{int n;cin >> n;w[1] = 1;set<int> s;s.insert(1);for(int i = 2; i <= n; i ++){int x = w[i - 1] - i;if(x > 0 && s.find(x) == s.end()) w[i] = x;else w[i] = w[i - 1] + i;s.insert(w[i]);}sort(w + 1, w + n + 1);for(int i = 1; i <= n; i ++)cout << w[i] << " ";return 0;
}

》》》点我查看「视频」详解》》》

关键字:武汉网站制作服务_软件下载网址_百度经验悬赏令_经典软文推广案例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: