码迷,mamicode.com
首页 > 其他好文 > 详细

Lucky Tickets URAL - 1036 dp+大数

时间:2018-03-25 10:35:26      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:for   个数   print   color   pen   ural   div   range   一个   

  用b[i][j]表示递推到第i位时数字和为j的方案数,那么总方案数就是b[n][s/2]的平方

  

 1 n, s = input().split( )
 2 
 3 n = int(n)
 4 s = int(s)
 5 
 6 if s % 2 == 1:
 7     print(0)
 8 else:
 9     s = int(s // 2)
10     b = [[]]
11     a = []
12     for i in range(0, 10):
13         a.append(1)
14     for i in range(10, s + 1):
15         a.append(0)
16     b.append(a)
17     for i in range(2, n + 1):
18         a = [0]  # 添加一个数用于占位
19         for j in range(0, s + 1):
20             a.append(0)
21             for m in range(0, 10):
22                 if m <= j:
23                     a[j] += b[i - 1][j - m]
24         b.append(a)
25     print(b[n][s] ** 2)

 

Lucky Tickets URAL - 1036 dp+大数

标签:for   个数   print   color   pen   ural   div   range   一个   

原文地址:https://www.cnblogs.com/tcctw/p/8642243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!