您的位置:首页 > 其它

nyoj-746

2015-09-01 22:02 459 查看

整数划分(四)

时间限制:1000 ms | 内存限制:65535 KB
难度:3

描述
暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define ll long long
#define repu(i, a, b) for(int i = a; i < b; i++)
#define repd(i, a, b) for(int i = b; i >= a; i--)
#define sfi(n) scanf("%d", &n)
#define pfi(n) printf("%d\n", n)
#define _cle(m, a) memset(m, a, sizeof(m))
ll a[20][20];
ll dp[20][20];
char s[21];
int n, k;
void init()
{
_cle(a, 0);
repu(i, 0, n) repu(j, i, n) repu(k, i, j + 1)
a[i][j] = a[i][j] * 10ll + (ll)(s[k] - '0');
}

int main()
{
int T;
sfi(T);
while(T--)
{
_cle(dp, 0);
scanf("%s", s);
n = strlen(s);
init();
sfi(k); k--;
repu(i, 1, n + 1)
{
dp[i][0] = a[0][i - 1];
repu(j, 1, k + 1) repu(p, 1, i)
dp[i][j] = max(dp[i][j], dp[p][j - 1] * a[p][i - 1]);
}
printf("%lld\n", dp
[k]);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: