动态规划入门——Eddy's research II

转载请注明出处:http://blog.csdn.net/a1dark

分析:根据题目推出公式、分三种情况讨论、可以用递归写、也可以直接递推、

递归代码:

#include<stdio.h>
int dfs(int m,int n){
    if(n==0)return dfs(m-1,1);
    if(m==1)return n+2;
    if(m==2)return 2*n+3;
    if(m==3)return 2*dfs(3,n-1)+3;
}
int main(){
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF){
        if(m==1)printf("%d\n",n+2);
        else if(m==2)printf("%d\n",2*n+3);
        else printf("%d\n",dfs(3,n));
    }
    return 0;
}

递推代码:


#include<stdio.h>
int main(){
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF){
        if(m==1)printf("%d\n",n+2);
        else if(m==2)printf("%d\n",2*n+3);
        else{
            int s=5;
            for(int i=1;i<=n;i++)
                s=s*2+3;
            printf("%d\n",s);
        }
    }
    return 0;
}


你可能感兴趣的:(ACM,动态规划入门)