码迷,mamicode.com
首页 > 其他好文 > 详细

递推的基础

时间:2020-04-25 17:33:31      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:family   system   sys   规划   mamicode   动态规划   lse   some   技术   

技术图片

 

例1:

技术图片

 

 技术图片

 

 

def ditui(n,m,cx,cy):
    x=[1,1,2,2,-1,-1,-2,-2]
    y=[2,-2,1,-1,2,-2,1,-1]
    d=[[0 for i in range(n+1)]for j in range(m+1)]
    f=[[0 for i in range(n+1)]for j in range(m+1)]
    d[cx][cy]=1
    for i in range(len(x)):
        tx=cx+x[i]
        ty=cy+y[i]
        if tx>=0 and ty>=0 and tx<=n and ty<=m:
            d[tx][ty]=1
    for i in range(n+1):
        for j in range(m+1):
            f[0][0]=1
            if d[i][j]==1:
                f[i][j]=0
            elif i==0:
                f[i][j]=f[i][j-1]
            elif j==0:
                f[i][j]=f[i-1][j]
            else:
                f[i][j]=f[i][j-1]+f[i-1][j]
    return f[n][m]
if __name__==__main__:
    n,m,cx,cy=map(int,input().split())
    print(ditui(n,m,cx,cy))

例2:

技术图片

 

 技术图片

 

 

def tuqiang(n):
    ans=[0 for i in range(n+1)]
    for i in range(n+1):
        if i==0:
            ans[i]=0
        elif i==1:
            ans[i]=3
        elif i==2:
            ans[i]=6
        elif i==3:
            ans[i]=6
        else:
            ans[i]=ans[i-1]+2*ans[i-2]
    return ans[n]

if __name__==__main__:
    n=int(input())
    print(tuqiang(n))

例3:

技术图片

 

 技术图片

 

 

def yanghui(n,m):
    ans=[[0 for i in range(n+1)]for j in range(n+1)]
    for i in range(1,n+1):
        for j in range(1,i+1):
            if j==1 or j==i:
                ans[i][j]=1
            else:
                ans[i][j]=ans[i-1][j-1]+ans[i-1][j]
    return ans[n][m]
if __name__==__main__:
    n,m=map(int,input().split())
    print(yanghui(n,m))

 

 

递推与动态规划的基础

递推的基础

标签:family   system   sys   规划   mamicode   动态规划   lse   some   技术   

原文地址:https://www.cnblogs.com/pythonbigdata/p/12773611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!