P7642 [BalticOI 2006 Day 2] JUMP THE BOARD! 题解
Naro_Ahgnay · · 题解
题目大意
给定一个
思路
对于求方案数的题目,不难发现这是一道 dp 题。状态转移方程也非常好推。
设
其中边界为
但是,我们发现题目的数据范围极大,不得不用高精度。
于是——人生苦短,我用 python!
code
dp=[]
g=[]
for i in range(0,110):
dp.append([])
g.append([])
for j in range(0,110):
dp[i].append(0)
n=int(input())
for i in range(1,n+1):
g[i]=input().split()
g[i].append(int(g[i][n-1]))
for j in range(n-1,0,-1):
g[i][j]=int(g[i][j-1])
dp[1][1]=1
g[n][n]=1
for i in range(1,n+1):
for j in range(1,n+1):
if(i+g[i][j]<=n):
dp[i+g[i][j]][j]+=dp[i][j]
if(j+g[i][j]<=n):
dp[i][j+g[i][j]]+=dp[i][j]
print(dp[n][n])