python3 解决P1018乘积最大

xiaosongliu

2018-12-07 12:38:01

Solution

python3 可以解决大整数问题,而且字符串转整数很方便,可以节省很多代码。本体关键是找到思路:f[i][k]表示前i个数里面插入k个乘号的最大值。int(str(s)[j + 1:i + 1])表示字符串第j + 1到i的数字组成的整数。 ```python n, k = map(int, input().split()) s = int('1' + input()) f = [[0 for i in range(k + 1)] for j in range(n + 1)] for i in range(1, n + 1): f[i][0] = int(str(s)[1: i + 1]) for k1 in range(1, k + 1): for i in range(k1 + 1, n + 1): for j in range(k1, i): f[i][k1] = max(f[i][k1], f[j][k1 - 1] * int(str(s)[j + 1:i + 1])) print(f[n][k]) ```