2349: Palin

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:40 解决:17

题目描述

大家都知道回文串吧~ 简单地说就是左右对称的一个串,比如 abcba,werrew。小 s 对回文串的研究已

经够深刻了,现在她转而研究其他方面的回文,比如,数的回文拆分。对于自然数的拆分,就是把一个

自然数 N 用若干个整数之和表示。比如 15=1+2+3+4+5=1+2+1+7+1+2+1。那么怎样的拆分才算是回文的

呢?我们用从归纳的角度来定义数的回文拆分。首先一个数 A=A 是一个回文拆分。其次,一个自然数

N=A+A 或是 N=A+x+A,其中 A 是一个回文拆分,x 是任意一个自然数,这两种也是回文拆分。举个例子,

7 的所有回文拆分有 7,1+5+1,2+3+2,1+1+3+1+1,3+1+3,1+1+1+1+1+1+1。现在小 s 想知道,一个正整数

N 的回文拆分到底有多少种。由于这个数字可能很大,小 s 只需要你告诉她答案 mod 1,000,000,007 的

值。

输入

一行,一个正整数 N

输出

一行,一个整数 M,为 N 的回文拆分数 mod 1,000,000,007 的值

样例输入 复制

4

样例输出 复制

4

提示

in

20

out

60

数据范围

30% 1<=N<=20

100% 1<=N<=1000