标签:
题目:传送门
1 123 2
36
#include <iostream> #include <algorithm> #include <stdio.h> #include <string.h> typedef long long ll; using namespace std; #define mod 1000000007 int m,l; char s[22];//局部变量与全局变量求字符串长度完全不同 ll a[20][20],dp[20][20]; int main() { int T; scanf("%d",&T); while(T--) { scanf("%s",s+1); scanf("%d",&m); l=strlen(s+1); memset(a,0,sizeof(a)); if(m==1||m==0) { printf("%s\n",s+1); continue; } for(int i=1;i<=l;i++) { for(int j=i;j<=l;j++) { a[i][j]=a[i][j-1]*10+(s[j]-‘0‘); } } memset(dp,0,sizeof(dp)); for(int i=0;i<=l;i++) dp[i][1]=a[1][i]; for(int j=2;j<=m;j++) { for(int i=j;i<=l;i++) { for(int k=1;k<i;k++) { dp[i][j]=max(dp[i][j],dp[k][j-1]*a[k+1][i]); } } } printf("%lld\n",dp[l][m]); } return 0; }
SDUT3146:Integer division 2(整数划分区间dp)
标签:
原文地址:http://www.cnblogs.com/zhangmingcheng/p/4328403.html