CodeVs 1017 乘积最大(DP)
Posted prog123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeVs 1017 乘积最大(DP)相关的知识,希望对你有一定的参考价值。
题目大意:
http://codevs.cn/problem/1017/
题解:
#include <iostream> using namespace std; char ch[45]; int n,k; long long int arr[45][7]; long long int dp[45][7]; int main() { cin >> n >> k >> ch; for(int i = 0; i < n; i++){ int tmp = 0; for(int j = i; j < n; j++){ tmp = tmp * 10 + ch[j]-‘0‘; arr[i][j] = tmp; } } //dp 开始 for(int i = 0; i < n; i++){ dp[i][0] = arr[0][i]; } for(int i = 0; i < n; i++){ for(int j = 1; j <= k; j++){ for(int k = 0; k < i; k++){ dp[i][j] = max(dp[k][j-1]*arr[k+1][i],dp[i][j]); } } } cout << dp[n-1][k] << endl; return 0; }
以上是关于CodeVs 1017 乘积最大(DP)的主要内容,如果未能解决你的问题,请参考以下文章