前言:
高级动态规划题
简单直接上代码
希望有帮助
问题描述:
第一行有三个整数 M、N和P,分别表示水平道路的数量、垂直道路的数量和不能通过的十字路口的数量。
之后 P行,每行一对整数,分别表示不能通行的路口所在的行数及列数(已知:这个路口不会在起点和终点)。
只有一个整数,表示从上角到右下角不同路径的条数。
4 7 3 1 3 2 7 3 4
19
100%的数据 2<=n,m<=20
问题解析:
这是上一题的进步
整体代码完全相同
如果你走到不通的地方,那就多一个
跳过
c 路径总数题解(爱思创)_我是狙击神蟋蟀的博客-CSDN博客
完整代码:
#include <bits/stdc .h> using namespace std; long long a[101][101],f[101][101],x,y; int main() { long long n,m,e=1,z,i,j; cin>>n>>m>>z; for(i=1;i<=z;i ) { cin>>x>>y; a[x][y]=1; } f[1][0]=1; for(i=1;i<=n;i ) { for(j=1;j<=m;j ) { if(a[i][j]==1)/如果不通过, { f[i][j]=0.//这个点的方法数为0 continue; } f[i][j]=f[i-1][j] f[i][j-1]; } } cout<<f[n][m]; return 0; }
然后就AC了
下一期是背包问题
