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