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

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

1.DFS做超时40分

python 复制代码
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分

python 复制代码
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])
相关推荐
玄同765几秒前
Python 后端三剑客:FastAPI/Flask/Django 对比与 LLM 开发选型指南
人工智能·python·机器学习·自然语言处理·django·flask·fastapi
张登杰踩1 分钟前
MCR ALS 多元曲线分辨算法详解
算法
爱吃泡芙的小白白8 分钟前
环境数据多维关系探索利器:Pairs Plot 完全指南
python·信息可视化·数据分析·环境领域·pairs plot
YuTaoShao10 分钟前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
派葛穆17 分钟前
Python-批量安装依赖
开发语言·python
pchaoda18 分钟前
RSI与布林带技术指标实战
python·matplotlib·量化
波波00718 分钟前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
番茄灭世神23 分钟前
Python从入门到精通 第一章
python
B站_计算机毕业设计之家27 分钟前
豆瓣电影推荐系统 | Python Django Echarts构建个性化影视推荐平台 大数据 毕业设计源码 (建议收藏)✅
大数据·python·机器学习·django·毕业设计·echarts·推荐算法