城市A、B间有规整的N*M的方格网络,且A、B分别为网络的左下角和右上角,现有一车从A到B,且只能向右或向上移动,求有多少条可能的移动路径?答案对P取模。
对于20%的数据,
n,m≤5
对于50%的数据,
n,m≤103
对于70%的数据,
n,m≤106,p为质数
对于100%的数据,
n,m≤106,p≤109+7
算法1:暴力DFS
算法2:简单DP
算法3:
通过打表可以发现DP数组实际上是杨辉三角。所以答案就是
Cnn+m
。
实际上,路径的长度总是为
n+m
,而且对于所有路径上横边,其横坐标就是在横边中的序数,纵坐标就是其前面有多少个纵边。纵边类似。而且路径只由横边与纵边组成且数量一定。因此一旦纵边或横边在路径上的顺序确定,那么整条路径的完全确定了。即
Cnn+m
可能存在没有逆元的情况。分解质因数即可。
实际上就是简单的高中数学题。。