EularProject 15: 方格迷宫的路径数
2015-01-27 11:58
134 查看
Lattice paths
Problem 15
Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.How many such routes are there through a 20×20 grid?
|
dict={} def func(i,j): rest=dict.get(str(i)+'_'+str(j)) if rest!=None: return rest else: if i==0 or j==0: return 1 temp=func(i-1,j)+func(i,j-1) dict[str(i)+'_'+str(j)]=temp return temp result=func(20,20) print(result)上面的代码用到了带记忆的自上向下的动态规划算法。鉴于题目的特殊性,可以发现用组合数公式可以直接求解。
import operator from functools import reduce def c(n,k): return reduce(operator.mul,range(n - k + 1, n + 1)) //reduce(operator.mul, range(1, k +1)) def fac(n): return reduce(operator.mul, range(1,n+1)) a,b=20,20 print(c(a+b,a))
time : <1s
------------------
祝身体健康,万事如意
华电北风吹
天津大学计算机科学与技术学院
天津市卫津路92号
邮编: 300072
邮箱: 1194603539@qq.com
相关文章推荐
- Project Euler15 给定一个20*20的方格,从左上角到右下角的路径有多少条?(只允许向右和向下走)
- BFS和DFS的差别,BFS实现迷宫最短路径
- 自动寻找走出迷宫的最短路径
- POJ 3984迷宫问题(记录路径)
- 迷宫路径&广度优先求解&深度优先求解&迷宫游戏
- 【深度优先_栈】:输出迷宫的所有路径,并求出最短路径长度及最短路径
- POJ 3984 迷宫问题(记录路径的搜索)
- 迷宫问题 (广搜+记录路径)
- 迷宫最短路径问题(ShortestPath)的求解——利用链式队列
- A*算法--迷宫找最短路径(JAVA实现)
- 本人写的迷宫,不过知道这样才能输出所有的路径
- POJ 3984:迷宫问题 bfs+递归输出路径
- 寻找一条通过迷宫的路径
- 学霸的迷宫 ----最短路径---广搜
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
- 15_栈的递归实例6---迷宫
- SDUT 1269走迷宫(DFS+打印路径)
- 迷宫问题[1] DFS 不保证最短路径
- 编程算法 - 迷宫的最短路径 代码(C++)
- 广度优先搜索(BFS)——迷宫的最短路径