###符号的添加 ###dp[i][j] 表示前i个数中有乘号为j的和 N,K=map(int,input().split()) aa=list(map(int,input().split())) a=[0] for i in range(N): a.append(aa[i]) #print(a) dp=[[0]*101 for _ in range(101)] sum=0 for i in range(1,N+1): sum+=a[i] dp[i][0]=sum for i in range(1,N+1): for j in range(1,i): for p in range(2,i+1): ##第j个乘号插入的位置 dp[i][j]=max(dp[i][j],dp[p-1][j-1]*(dp[i][0]-dp[p-1][0])) ###(dp[i][0]-dp[p-1][0])表示从(p-1)到i的总和 print(dp[N][K])
解题思路:
注意事项:
参考代码:
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1195 |
WU-复数求和 (C++代码)浏览:1995 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1142 |
字符逆序 (C语言代码)浏览:636 |
1157题解浏览:711 |
1024题解浏览:806 |
矩阵乘方 (C语言代码)浏览:1022 |
1050题解(结构体数组与结构体指针的使用)浏览:1105 |
C二级辅导-阶乘数列 (C语言代码)浏览:508 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1273 |