DP练习_P1002 [NOIP2002 普及组] 过河卒_python_蓝桥杯

P1002 [NOIP2002 普及组] 过河卒 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

1.DFS做超时40分

n, m, x, y = map(int,input().split())

flag = [[0]*(n+10) for _ in range(m+10)]
maps = [[0]*(n+10) for _ in range(m+10)]
d = [[2,1],[2,-1],[-2,1],[-2,-1],[1,2],[1,-2],[-1,2],[-1,-2],[0,0]]

for xx,yy in d:
    dx = x+xx
    dy = y+yy
    if 0<=dx<=n and 0<=dy<=m:
        maps[dx][dy] = 1

flag[0][0] = 1
ans = 0

dd = [[0,1],[1,0]]
def dfs(sx,sy):
    global ans
    if sx == n and sy == m:
        ans += 1
        return
    for xx, yy in dd:
        dx = sx+xx
        dy = sy+yy
        if 0<=dx<=n and 0<=dy<=m:
            if flag[dx][dy] == 0 and maps[dx][dy] == 0:
                flag[dx][dy] = 1
                dfs(dx,dy)
                flag[dx][dy] = 0

dfs(0,0)
print(ans)

 

2.DP做100分

n, m, x, y = map(int,input().split())

dp = [[0]*(n+10) for _ in range(m+10)]
flag = [[0]*(n+10) for _ in range(m+10)]
d = [[2,1],[2,-1],[-2,1],[-2,-1],[1,2],[1,-2],[-1,2],[-1,-2]]

for xx,yy in d:
    dx = x+xx
    dy = y+yy
    if 0<=dx<=n and 0<=dy<=m:
        flag[dx][dy] = 1
flag[x][y] = 1
flag[0][0] = 1

dp[0][0] = 1
for i in range(n+1):
    for j in range(m+1):
        if flag[i][j] == 0:
            if i == 0:
                dp[i][j] = dp[i][j-1]
            else:
                if j == 0:
                    dp[i][j] = dp[i-1][j]
                else:
                    dp[i][j] = dp[i-1][j] + dp[i][j-1]

print(dp[n][m])

相关推荐

  1. P1062 [NOIP2006 普及] 数列

    2024-04-08 22:48:04       32 阅读
  2. P1002 :图论动态规划入门

    2024-04-08 22:48:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-08 22:48:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-08 22:48:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-08 22:48:04       87 阅读
  4. Python语言-面向对象

    2024-04-08 22:48:04       96 阅读

热门阅读

  1. 设计模式 工厂模式

    2024-04-08 22:48:04       34 阅读
  2. MySQL 中,常见的 JOIN 查询语句

    2024-04-08 22:48:04       34 阅读
  3. Docker安装Mysql

    2024-04-08 22:48:04       34 阅读
  4. 习题3-3 出租车计价

    2024-04-08 22:48:04       30 阅读
  5. 如何使用Python的内置函数和模块?

    2024-04-08 22:48:04       40 阅读
  6. Springboot 集成websocket

    2024-04-08 22:48:04       36 阅读
  7. Vue登陆鉴权方案(token)

    2024-04-08 22:48:04       26 阅读