ZUFE2481 神奇的字符串 2017-05-12 16:41 39人阅读 评论(0) 收藏
2481: 神奇的字符串
时间限制: 3 Sec 内存限制: 256 MB
提交: 8 解决: 3
[提交][状态][讨论版]
题目描述
输入
输出
样例输入
abcb
1000 1100
350 700
200 800
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000 jelly
1000 1100
350 700
200 800
2000 2000
2000 432
2000 2000
2000 2000
2000 2000
2000 2000
20 2000
2000 2000
350 35
200 800
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
2000 2000
15 2000
2000 2000
样例输出
900
105
提示
来源
————————————————————————————————————————
思路:分析可知一定是先删去前面和后面然后一端添加字符,所以先n^2处理出前后删减的花费,然后用dp数字达标维护,用dp[i][j][0]表示区间[i,j]向前扩展成回文的最小花费,用dp[i][j][1]表示区间[i,j]向后扩展成回文的最小花费
#include <iostream>
#include<queue>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<set>
#include<cstring>
using namespace std;
#define LL long long int dp[1005][1005][2];
int a[30],b[30];
char s[1005];
int L[1005],R[1005];
bool dd[1005][1005]; int main()
{
while(~scanf("%s",s))
{ for(int i=0; i<26; i++)
scanf("%d%d",&a[i],&b[i]);
int n=strlen(s);
memset(dd,0,sizeof dd);
for(int i=1; i<=n; i++)
{
dd[i][i]=true;
}
for(int i=1; i<n; i++)
{
if(s[i-1]==s[i])
dd[i][i+1]=true;
}
for(int j=2; j<n; j++)
for(int i=1; i<=n; i++)
{
if(i+j>n)
break;
dd[i][i+j]=s[i-1]==s[i+j-1]&dd[i+1][i+j-1];
} for(int i=0; i<n; i++)
dp[i][i][0]=0,dp[i][i][1]=0;
for(int j=1; j<n; j++)
{
for(int i=1; i<=n; i++)
{
if(i+j>n) break; if(dd[i][i+j])
{
dp[i][i+j][0]= dp[i][i+j][1]=0;
}
else
{
dp[i][i+j][0]=dp[i][i+j-1][0]+b[s[i+j-1]-'a'];
dp[i][i+j][1]=dp[i+1][i+j][1]+b[s[i-1]-'a'];
} }
}
L[0]=0;
L[1]=a[s[0]-'a'];
for(int i=2; i<=n; i++)
{
L[i]=L[i-1]+a[s[i-1]-'a'];
}
R[n+1]=0;
R[n]=a[s[n-1]-'a'];
for(int i=n-1; i>0; i--)
{
R[i]=R[i+1]+a[s[i-1]-'a'];
} int mn=0x3f3f3f3f;
for(int i=1; i<=n; i++)
{
for(int j=n; j>=i; j--)
{
mn=min(mn,L[i-1]+R[j+1]+min(dp[i][j][0],dp[i][j][1]));
}
}
printf("%d\n",mn); } return 0;
}
ZUFE2481 神奇的字符串 2017-05-12 16:41 39人阅读 评论(0) 收藏的更多相关文章
- ZUFE2480: 神奇的序列 2017-05-12 16:45 39人阅读 评论(0) 收藏
2480: 神奇的序列 时间限制: 4 Sec 内存限制: 256 MB 提交: 31 解决: 15 [提交][状态][讨论版] 题目描述 序列a如下: a[0] = A; a[1] = B; a ...
- c# 发送邮件、附件 分类: C# 2014-12-17 16:41 201人阅读 评论(0) 收藏
WinForm窗体代码如下: <span style="font-size:14px;">using System; using System.Collections. ...
- HRBUST1313 火影忍者之~静音 2017-03-06 16:11 39人阅读 评论(0) 收藏
火影忍者之-静音 传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟-,可是报考公务员的人数实在是太--多啦!所以纲手的贴身随从-静音小姐, ...
- HRBUST1315 火影忍者之~大战之后 2017-03-06 16:14 54人阅读 评论(0) 收藏
火影忍者之-大战之后 经历了大战的木叶村现在急需重建,人手又少,所以需要尽可能多的接受外来的任务,以赚取报酬,重建村庄,假设你现在是木叶的一名高级忍者,有一大堆的任务等着你来做,但毕竟个人时间有限,所 ...
- Mahout快速入门教程 分类: B10_计算机基础 2015-03-07 16:20 508人阅读 评论(0) 收藏
Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单 ...
- 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏
主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...
- NavBarControl控件 2015-07-23 16:56 2人阅读 评论(0) 收藏
NavBarControl控件 1. 新建一个windows窗体应用程序项目 2. 在工具箱中的Navigation& Layout选项卡下找到NavBarControl, ...
- ubuntu文件管理常用命令 分类: linux ubuntu 学习笔记 2015-07-02 16:57 29人阅读 评论(0) 收藏
1.关闭防火墙:ufw disable 2.以.开头的表示隐藏文件 3..和..分别代表当前目录以及当前目录的父目录 4.显示当前用户所在目录pwd 5.touch创建空文件 6.mkdir创建新目录 ...
- SQL string类型的数据按int类型排序 分类: SQL Server 2014-12-08 16:56 393人阅读 评论(0) 收藏
说明: 我在做wms进销存软件时,发现一个问题:一张入库单(T_OutIn_BoxTop),入库扫描时要分成多箱,箱号(BoxTop_No)可以是数字也可以是字符串,所以箱号只能是字符串类型的,问题来 ...
随机推荐
- c#启动windows服务问题总结
程序以管理员权限运行的原因 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下 ...
- 15.Mysql中的安全问题
15.SQL中的安全问题15.1 SQL注入简介SQL是用来和数据库交互的文本语言.SQL注入(SQL Injection)是利用数据库的外部接口将用户数据插入到实际的SQL中,以达到入侵数据库乃至操 ...
- linux 使用笔记6
---恢复内容开始--- 1.内容追加 把一个文件的内容追加到另一个文件中: cat first.txt >> second.txt//追加到second.txt文件的末端 cat ...
- fedora25的nfs文件系统搭建
关于NFS的原理介绍可以参考这篇文章:http://blog.51cto.com/atong/1343950 1> nfs服务端 安装nfs工具包和rpcbind包 dnf install nf ...
- AppStore企业账号打包发布APP流程详解
一.通过企业账号申请证书 1 Certificate Signing Request (CSR)文件 在Mac系统中进入“钥匙串访问”,选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书…”, ...
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- linux以16进制方式查看文件
vim打开文件 :%!xxd 以16进制查看 :%!xxd -r 转回来
- UI设计初学者必备的工具以及学习路线(附思维导图)
今天千锋UI设计小编着重为大家介绍5个学习ui设计必须要会的工具和软件以及UI设计学习路线,希望能对大家所帮助. UI设计必要的工具和软件 1.PS 图像处理合成软件 ui设计核心软件,强大的图像处理 ...
- UI设计教程分享:让你彻底读懂字体
一份普普通通.规规矩矩的设计 一份让人印象深刻.新颖有趣的设计 差在哪?其实就差在三个字上! “优秀的设计不是每一个细节都有亮点,而是弱化其他元素,让某一个亮点最大化.” 今天“骉叔的设计心得”就来总 ...
- HTML的基本知识点
<!DOCTYPE HTML> <html> <body> <video width="320" height="240&quo ...