链接

题目大意就相当于 跟你一串字符串 让你截成k段 使总体的值最小

想法是递归的 递归太慢 可以转换为递推的

这样就有可以推出状态方程 dp[i][j] = max(dp[i][j],dp[i-1][g]+sum[g+1][j]+sum[1][g]-sum[1][j]); dp[i][j]表示总长度为j第i次截的最小值 后面的sum[i][j]表示的就是从i开始作为第一个到j个的花费 o[i][j]保存路径

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<algorithm>
#include<vector>
#include<cmath>
#define INF 1e10
using namespace std;
char s[],ks[];
#define LL long long
LL dp[][],p[],sum[][];
int o[][],pa[];
int main()
{
//freopen("data1.in","r",stdin);
//freopen("text.out","w",stdout);
int t,k,i,j,l,g,kk=;
cin>>t;
while(t--)
{
memset(sum,,sizeof(sum));
kk++;
for(i = ; i < ; i++)
for(j = ; j < ; j++)
dp[i][j] = INF;
cin>>k>>l;
cin>>ks;
cin>>s;
for(i = ; i <= l ; i++)
cin>>p[i];
for(i = ; i <= l ; i++)
{
for(j = i; j <= l ; j++)
sum[i][j] = sum[i][j-]+p[j]*(j-i+);
}
for(i = ;i <= k- ; i++)
for(j = l ; j >= ; j--)
for(g = ; g < j ; g++)
{
if(dp[i][j]>dp[i-][g]+sum[][g]+sum[g+][j]-sum[][j])
{
dp[i][j] = dp[i-][g]+sum[][g]+sum[g+][j]-sum[][j];
o[i][j] = g;
}
}
int x = k-,y = l;
g = ;
while(x)
{
pa[++g] = o[x][y];
x--;y = pa[g];
}
printf("Keypad #%d:\n",kk);
pa[g+] = ;
for(i = g ;i >= ;i--)
{
printf("%c: ",ks[k-i-]);
for(j =pa[i+]+; j <= pa[i] ; j++)
{
printf("%c",s[j-]);
}
puts("");
}
printf("%c: ",ks[k-]);
for(j = pa[]+; j <= l ; j++)
printf("%c",s[j-]);
puts("");
puts("");
}
return ;
} /**************************************
Problem id : SDUT OJ 1650
User name : shang
Result : Accepted
Take Memory : 688K
Take Time : 200MS
Submit Time : 2014-02-15 11:17:10
**************************************/

最新文章

  1. [转载]jquery版小型婚礼(可动态添加祝福语)
  2. Win10 通过升级安装完成后出现了中文字体忽大忽小的问题解决。
  3. lodash常用方法2--修改
  4. Python入门笔记(24):Python面向对象(1)速成
  5. ref和out
  6. 【转】C/C++中可变参数函数的实现
  7. jAVA HDU1001题
  8. 7.5.1 Point-in-Time Recovery Using Event Times 使用Event Times 基于时间点恢复
  9. C#关于使用枚举遇到的问题----Parse()方法使用注意
  10. expr的简单应用
  11. cocos2d-x游戏开发系列教程-超级玛丽01-前言
  12. WPF开发的FTP文件上传工具
  13. 【BZOJ1189】紧急疏散(二分答案,最大流)
  14. 搭建apache本地服务器&#183;Mac
  15. rest接口webservice接口利用http请求方式发送数据
  16. 把tomcat服务器配置为windows服务的方法
  17. asp.net mvc 实现上传文件带进度条
  18. golang 死锁
  19. Maven 专题
  20. Net is as typeof 运行运算符详解

热门文章

  1. ubuntu下安装pycharm的方法
  2. python的线程thread笔记
  3. Ioc 器管理的应用程序设计,前奏:容器属于哪里? 控制容器的反转和依赖注入模式
  4. jquery验证后ajax提交,返回消息怎样统一显示的问题
  5. NS3网络仿真(12): ICMPv4协议
  6. mysql最新版中文参考手册在线浏览
  7. debian repository的成长过程
  8. HDU1269 迷宫城堡 —— 强连通分量
  9. YTU 2572: 猜灯谜
  10. 谁动了我的cpu——oprofile使用札记