救救Python党吧!
查看原帖
救救Python党吧!
333724
IL_2楼主2021/2/11 20:27

我的状态转移方程似乎没有问题,边界也没啥。就一很普通的程序。

然鹅,这是样例的调试数据。。。

注意f

调试数据

输出(f[-1][-1])19???????

附代码

def find(m,n,x,y):
    f = [[None]*m for i in range(n)]#创建列表
    #设置边界
    for i in range(n):
        f[i][0] = 1
    for i in range(m):
        f[0][i] = 1
        
    #规定控制点
    f[x+1][y+2] = 0
    f[x+2][y+1] = 0
    f[x-1][y+2] = 0
    f[x+1][y-2] = 0
    f[x-2][y-1] = 0
    f[x-1][y+2] = 0
    f[x+2][y-1] = 0
    f[x][y] = 0
    
    #遍历
    for y in range(n):
        for x in range(m):
            if f[y][x] == None:
                f[y][x] = f[y][x-1]+f[y-1][x]#状态转移方程
    return f[-1][-1]

m,n,x,y = map(int,input().split())
print(find(m+1,n+1,x,y))

评测结果:https://www.luogu.com.cn/record/46507116

2021/2/11 20:27
加载中...