Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
题目名称 3805. [JZOI 2022 day3]数列
输入输出 jzoi2022_sequence.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravataryuan 于2022-11-24加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:6, 提交:7, 通过率:85.71%
Gravataryuan 100 0.000 s 0.00 MiB C++
Gravatar┭┮﹏┭┮ 100 0.000 s 0.00 MiB C++
Gravatar宇战 100 0.000 s 0.00 MiB C++
Gravatarムラサメ 100 0.000 s 0.00 MiB C++
Gravatardick 100 0.000 s 0.00 MiB C++
Gravatar超人 100 0.000 s 0.00 MiB C++
Gravatar宇战 0 0.005 s 0.00 MiB C++
本题关联比赛
NOIP2023模拟赛5
关于 数列 的近10条评论(全部评论)

3805. [JZOI 2022 day3]数列

★   输入文件:jzoi2022_sequence.in   输出文件:jzoi2022_sequence.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

给定一个正整数 n ,输出外观数列的第 n 项。

外观数列是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。

你可以将其视作是由递归公式定义的数字字符串序列:

  countAndSay(1)\ =\ \ "1"

  countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。

前五项如下:

1.     1  

2.     11  

3.     21  

4.     1211  

5.     111221  

第一项是数字  1

描述前一项,这个数是 1 即 “ 一 个 1 ”,记作  11

描述前一项,这个数是 11 即 “ 二 个 1 ”,记作  21

描述前一项,这个数是 21 即 “ 一 个 2 + 一 个 1 ”,记作  1211

描述前一项,这个数是 1211 即 “ 一 个 1 + 一 个 2 + 二 个 1 ”,记作  111221

要描述一个数字字符串,⾸先要将字符串分割为最⼩数量的组,每个组都由连续的最多相同字符组成。

然后对于每个组,先描述字符的数量,然后描述字符,形成一个描述组。要将描述转换为数字字符串,先将每组中的字符数量⽤数字替换,再将所有描述组连接起来。

【输入格式】

一个整数 n。表示外观数列的第 n 项。

【输出格式】

外观数列第 n 项的数字字符串。

【样例1输入】

7 

【样例1输出】

13112221

【数据规模与约定】

对于其中 20\% 的数据,保证 n\ ≤\ 10

对于其中 100\% 的数据,保证 1\ ≤\ n\ ≤\ 25

【来源】

焦作一中 NOIP 2022 模拟赛2022.11.24 pro1