迷宫
解题思路
①、暴力法
利用 dfs 遍历每一条可能的路径,将遍历的权值和不断取余。
不足:当 n、m 取较大的情况下,所遍历的路径可能会暴增,出现超时的情况。
②、递推法
从题目上我们可以发现,最终的权值和是要对 mod 取余的,利用这个特点,我们可以实现递推。
状态转移方程:
dp[i][j][k] | = dp[i-1][j][(k-mg[i][j]+mod)%mod];
dp[i][j][k] | = dp[i][j-1][(k-mg[i][j]+mod)%mod];
原理:在迷宫上,假设已知点(i-1, j)与(i, j-1)所能得到的权值和,那么我们就能求出点(i, j)所能得到的权力和。
AC代码
#include<bits/stdc++.h>
const int mod = 1e4+7;
bool dp[110][110][10010];
int mg[110][110]