加法最大:
题目:设有一个长度为n的数字字符串,分成k+1个部份,使其k+1部份相加的和为最大。例如:数字串’340670’,k=1,其加法有
3+40670=40673 34+0670=704 340+670=1010 3406+70=3476 34076+0=34076
其最大和为40676。
问题:当数字串和k给出后,找出一个分法使和为最大。
输入:
程序的输入共有两行:
第一行共有2个自然数N,K(6≤N≤40,1≤K≤6)
第二行是一个长度为N的数字串。
输出;:
相对于输入,应输出所求得的最大和(一个自然数)。
样例输入:
4 2
1231
样例输出:
62
思路:这道题就是枚举符号可能在什么位置,然后算出来看谁最大就好了。
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int n,m,f[42][42],s[42][42],d[42];//n是数字串的长度,m是插入符号的个数。
int main()
{
scanf("%d%d",&n,&m);// 输入n,m。
getchar();//去掉换行符。
for(int i=1;i<=n;i++)
{
d[i]=getchar()-48;