ecnu 2992 Easy

cnt[i]代表长度为i的符合条件的数量,cnt[i][0/1]代表长度为i并且0/1开头的符合条件的字符串数量

则cnt[i]=cnt[i][0]+cnt[i][1]=cnt[i-1]+cnt[i-1][1]+cnt[i-2][0]

#include<bits/stdc++.h>
using namespace std;

long long cnt[50][5];

int main(){
    memset(cnt,0,sizeof(cnt));
    cnt[1][0]=cnt[1][1]=1;
    cnt[2][0]=cnt[2][1]=2;
    for(int i=3;i<22;i++){
        cnt[i][0]=cnt[i-1][0]+cnt[i-1][1];
        cnt[i][1]=cnt[i-1][1]+cnt[i-2][0];
    }
    int n;
    while(cin>>n&&n!=-1){
        cout<<cnt[n][0]+cnt[n][1]<<endl;
    }
}

猜你喜欢

转载自www.cnblogs.com/TAMING/p/9046057.html