如何规划设计一个网站,wordpress 替换头像,wordpress调用文章自定义字段,校园网站建设情况给定一个数串#xff0c;以及K#xff0c;求对这个数串K划分的乘积最大值。 DP思路#xff1a;一开始肯定想到的是递归#xff0c;假设在某两个字符间有一个乘号#xff0c;那么乘积最大就是乘号两边的区间接着划分的乘积最大值。 于是状态空间表示如下dp[i][k]表示从0~i之…给定一个数串以及K求对这个数串K划分的乘积最大值。 DP思路一开始肯定想到的是递归假设在某两个字符间有一个乘号那么乘积最大就是乘号两边的区间接着划分的乘积最大值。 于是状态空间表示如下dp[i][k]表示从0~i之间有K个乘号的乘积最大值 dp[i][k] max(dp[j][k-1]*num[j1][i])(kji-1) 1 #include iostream2 #include queue3 #include climits4 #include algorithm5 #include memory.h6 #include stdio.h7 #include ostream8 #include vector9 #include list
10 #include cmath
11 #include string
12 using namespace std;
13
14 int num[50][50];
15 int dp[50][10];
16 int main()
17 {
18 int N,K;
19 string s;
20 cinNK;
21 cins;
22 int i,j;
23 for(i 0 ; i N ; i)
24 {
25 int tmp 0;
26 for(j i ; j N ; j)
27 {
28 tmp tmp*10s[j]-0;
29 num[i][j] tmp;
30 }
31 }
32 memset(dp,0,sizeof(dp));
33 for(j 0; j N ; j)
34 {
35 dp[j][0] num[0][j];
36 }
37 for(j 0; j N ; j)
38 {
39 int k,t;
40 for(k 1;k K; k)
41 {
42 for(t 0; t j;t)
43 {
44 dp[j][k] max(dp[t][k-1]*num[t1][j],dp[j][k]);
45 }
46 }
47 }
48 coutdp[N-1][K]endl;
49 return 0;
50 } 转载于:https://www.cnblogs.com/cane/p/3787628.html