共有$20\times 3+3=63$个不同的得分区域(包括0分的情况),因此总共只有$63^3=250047$种可能性,暴力搜索即得结果$38182$。
import itertools
p=[str(i)+j for i in range(1,21) for j in "SDT"]+['0S','25S','25D']
def q(x):
return int(x[:-1])*{"S":1,"D":2,"T":3}[x[-1]]
s=set([])
for i,j,k in itertools.product(p,repeat=3):
if k[-1]=='D' and q(i)+q(j)+q(k) < 100:
s.add((min(i,j),max(i,j),k))
print len(s)
|