1 条题解

  • 0
    @ 2024-6-18 19:01:31

    法一:
    暴力枚举f(1)=2 f(2)=3 f(3)=5 f(4)=8…
    发现规律 f(x)=f(x-1)+f(x-2)

    法二:
    设f(x)为有x种饭时的方案数
    显然我们有:
    f(1)=2 即打和不打两种
    f(2)=3 即只打第一个,只打第二个和不打三种

    考虑缩小问题规模
    对于x个饭,我们可以拿,也可以不拿
    所以根据加法原理,有f(x)=拿的方案数+不拿的方案数

    思考拿的方案数:
    因为拿了第x个饭,所以不能拿相邻的饭,所以x-1这饭一定不能拿
    所以拿的方案数为f(x-2)

    思考不拿的方案数:
    显而易见,不拿的方案数为f(x-1)

    易得,f(x)=f(x-1)+f(x-2)
    没错,这题实际上是一个初始值变了的斐波那契数列

    递推即可通过

    但是出题人卡了空间,所以你需要用三个变量来回捣撤

    • 1

    信息

    ID
    490
    时间
    2500ms
    内存
    15MiB
    难度
    8
    标签
    递交数
    147
    已通过
    21
    上传者