#P10259. [COCI 2023/2024 #5] Piratski kod
[COCI 2023/2024 #5] Piratski kod
题目背景
译自 COCI 2023/2024 Contest #5 T3「Piratski kod」
题目描述
Marrrtina 船长和她的海盗团队,在搜索了三个月之后,终于挖掘出一箱属于最著名的意大利海盗的失落宝藏。但是,要打开这个宝箱,她需要一个密码,该密码被描述在宝箱旁边的一个瓶子中的一条信息中。
信息如下:
只有最有价值的海盗才能打开宝箱,密码是以下谜题的答案:对于长度为 的二进制序列 ,且其中唯一的连续两个 位于序列的末尾,如果满足以下条件,它是一个数字 的海盗表示:
$$s[0]\cdot \text{Fib}[2] + s[1]\cdot \text{Fib}[3] + s[2]\cdot \text{Fib}[4] + \ldots + s[a − 2]\cdot \text{Fib}[a] = \sum_{i=0}^{a-2} s[i]\cdot \text{Fib}[2 + i] = x $$这里的 表示第 个斐波那契数。斐波那契数的定义如下:,,对于每个 ,$\text{Fib}[y] = \text{Fib}[y − 1] + \text{Fib}[y − 2]$。
例如,,,,这里的 表示数字的海盗表示。
海盗代码是一个二进制序列(没有关于连续 的任何条件),代表一系列正整数的序列。为了阅读它,我们将其分割为尽可能多的部分,这些部分是某些数字的海盗表示(可能还有一个不是任何数字的海盗表示的后缀),并按顺序写出这些整数。例如,我们将 分割为 ,最后一部分不是海盗表示,因此我们删除它,得到 ,并读到序列 。
海盗代码的值等于解码后的正整数序列的值之和。前面的密码的值为 。
我最喜欢的数字 是长度为 的所有海盗代码值的总和。由于该数字可能很大,打开宝箱的密码是 除以 的余数。
— Leonarrrdo da Pisa
如果 Marrrtina 无法打开宝箱,她的船员将认为她不值得信任,并将她逼上走板。
输入格式
一行一个整数 。
输出格式
输出一行 个整数,其中第 个整数表示长度为 的密码谜题的答案。
4
0 1 4 16
提示
样例解释 1
长度为 的代码是 和 ,它们的值都是 。
代码 的值为 ,其余所有长度为 的代码值都是 。
代码 的值为 , 的值为 。
子任务
Subtask | Points | Constraints |
---|---|---|
1 | 20 | |
2 | 40 | |
3 | 50 |