1.救雅典娜,通过60%
import sys
n = int(sys.stdin.readline().strip())
m = int(sys.stdin.readline().strip())
_ = map(int, sys.stdin.readline().strip().split(" "))
'''
3
3
-2 -3 3 -5 10 1 0 30 -5
res:7
'''
matrix = []
for i in range(n):
matrix.append(_[i * m:(i + 1) * m])
dp = [[0 for j in range(m)] for i in range(n)]
for i in range(n):
for j in range(m):
if i == 0:
if j == 0:
dp[i][j] = matrix[i][j]
else:
dp[i][j] = dp[i][j - 1] + matrix[i][j]
else:
if j == 0:
dp[i][j] = dp[i - 1][j] + matrix[i][j]
else:
dp[i][j] = min(dp[i - 1][j] + matrix[i][j], dp[i][j - 1] + matrix[i][j])
print dp
if dp[-1][-1] < 0:
print abs(dp[-1][-1]) + 1
else:
print 1
2.找零,通过100%
import sys
n=int(sys.stdin.readline().strip())
nums=map(int,sys.stdin.readline().strip().split(" "))
amount=int(sys.stdin.readline().strip())
res=[ 0 for _ in range(amount+1) ]
for i in range(1,amount+1):
cost=float("inf")
for c in nums:
if i-c >=0:
cost=min(cost,res[i-c]+1)
res[i]=cost
if res[amount]==float("inf"):
print -1
else:
print res[amount]