头条滴滴:小球排列组合数
import sys if __name__=='__main__': p,q,r = map(int,sys.stdin.readline().strip().split()) dp = [[[[0 for k in range(r+1)]for j in range(q+1)]for i in range(p+1)]for s in range(3)] # 如果最后一个球是P型,P型球的数量是1而其他颜色的球数是0,排列的数量是1。 if (p >= 1 ): dp[0][1][0][0]=1; # 如果最后一个球是Q型,Q型球的数量是1而其他颜色的球数是0,排列的数量是1。 if (q >= 1): dp[1][0][1][0]=1 # 如果最后一个球是R型,R型球的数量是1而其他颜色的球数是0,排列的数量是1。 if ( r>= 1 ): dp[2][0][0][1]=1 for i in range(0,p+1): for j in range(0,q+1): for k in range(0,r+1): if(i>0): dp[0][i][j][k]=max(dp[0][i][j][k],dp[1][i-1][j][k]+dp[2][i-1][j][k]) if(j>0): dp[1][i][j][k]=max(dp[1][i][j][k],dp[0][i][j-1][k]+dp[2][i][j-1][k]) if(k>0):dp[2][i][j][k]=max(dp[2][i][j][k],dp[0][i][j][k-1]+dp[1][i][j][k-1]) # print(dp[0][p][q][r]) # print(dp[1][p][q][r]) # print(dp[2][p][q][r]) result = dp[0][p][q][r]+dp[1][p][q][r]+dp[2][p][q][r]
#滴滴#