问题标题: 酷町堂:2752 爬楼梯

0
0
已解决
荣光峰
荣光峰
资深光能
资深光能

这题其实写过一遍,但暑假大礼包里有。所以,我爆零了.....

0分代码如下:

#include<bits/stdc++.h>
using namespace std; 
long long int n,m,f[105],t;
int main(){
    cin>>n>>m;
    f[1]=1;
    f[2]=2;
    f[3]=4;
    for(int i=1;i<=m;i++){
        cin>>t;
        f[t]=-1;
    }
    for(int i=4;i<=n;i++){
        if(f[i]<0){
            f[i]=0;
            continue;
        }
        f[i]=f[i-1]+f[i-2]+f[i-3];
    } 
    cout<<f[n];
    return 0;
}

 


0
已采纳
褚俊皓
褚俊皓
新手天翼
新手天翼

边界:f[0]=1;

输入t时将broken[t]=1

14行改成if(broken[i])

15,11行去掉

18行改成:

for(int j=1;j<=min(3,i);j++){
            f[i]+=f[i-j];
        }

我要回答