【数论】数列(找规律)

传送门

&校内OJ3799


这又是一道打表 找规律的题目

首先这个题目描述就不好懂

(我总疑心这个题目描述有错别字 应该是任意两段吧 还有“左右”是什么意思也许是从左,从右?)
但是这并不能阻挡我们做题

数学上来先打表,于是我们先打个表看看
字典序最小 第一项肯定就是 1了
又要满足条件1,所以第二项就应该是2
然后第三项可以是1
第四项1,2都不能满足条件1,那就是3
···
我们可以得到这个数列
1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 ······

在构造这个数列的过程中,我们可以发现在找后面的数的时候可以借助前面的数来搞
举个栗子
我们已经有了1 2这个数列
首先这个数列本身就满足1、2两个条件
如果我们把它复制一遍
1 2 | 1 2
每个部分都满足1、2两个条件
然而这个整体不满足条件1
由于1 2本身就是在条件1之下字典序最小的数列
所以我们要改动1 2 | 1 2,就只能搞大才能满足条件1,而又要让字典序小,所以,就只把最后那个数给搞大,变成1 2 1 3就满足条件啦

就有点递推的意味了
刚开始有个1->1 2->1 2 1 3->1 2 1 3 1 2 1 4
就是把现有的数列复制一遍 再在最后一个数上+1


然后我们在此基础上来找比较有操作性的规律
因为题目给的是N 并且它的范围还很大 所以我们要研究N这个项数

显而易见的,奇数项时,答案为1
而其它的数,也应该有周期性规律
n % 2 = 1 = > a [ n ] = 1 n \% 2 = 1 => a[n] = 1 n%2=1=>a[n]=1
n % 4 = 2 = &gt; a [ n ] = 2 n \% 4 = 2 =&gt; a[n] = 2 n%4=2=><

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值