HDU 3831 DICS
意甲冠军:
按标题给4操作模式 用最少的次数 离a串行转换b弦
思路:
因为操作仅仅有这4种 所以我们能够确定从头到位去匹配a和b一定是正确的
那么状态数一共同拥有多少呢 一共同拥有length[a]*length[b]*(1+num(a~z)+num(A~Z)) 状态不多 能够用dp解决
上述计算状态能够表示为dp[i][j][k] 即a串匹配到i同一时候b串匹配到j k表示改动后缀操作改动成的字符
那么仅仅须要打表出全部的dp 同一时候利用dp+(lena-i)+(lenb-j)更新ans就可以
代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
typedef unsigned long long LL;
#define N 505
#define M 53
#define inf 100000000 int ans;
int dp[N][N][M];
char f[N], g[N]; int change(char u) {
if (u >= 'A' && u <= 'Z')
return u - 'A' + 1;
if (u >= 'a' && u <= 'z')
return u - 'a' + 27;
return 0;
} int main() {
int i, j, k, ans, lf, lg;
while (~scanf("%s", f)) {
if (!strcmp(f, "#"))
break;
scanf("%s", g);
lf = strlen(f);
lg = strlen(g);
for (i = 0; i <= lf; i++) {
for (j = 0; j <= lg; j++) {
for (k = 0; k < M; k++)
dp[i][j][k] = inf;
}
}
ans = inf;
dp[0][0][0] = 0;
for (i = 0; i <= lf; i++) {
for (j = 0; j <= lg; j++) {
for (k = 0; k < M; k++) {
if (dp[i][j][k] == inf)
continue;
ans = min(ans, dp[i][j][k] + lf - i + lg - j);
if (i == lf || j == lg)
continue;
if ((!k && f[i] == g[j]) || (k && k == change(g[j]))) {
//same
dp[i + 1][j + 1][k] = min(dp[i + 1][j + 1][k],
dp[i][j][k]);
} else {
//delete
dp[i + 1][j][k] = min(dp[i + 1][j][k], dp[i][j][k] + 1);
//insert
dp[i][j + 1][k] = min(dp[i][j + 1][k], dp[i][j][k] + 1);
//change
dp[i + 1][j + 1][k] = min(dp[i + 1][j + 1][k],
dp[i][j][k] + 1);
//Suffix change
dp[i + 1][j + 1][change(g[j])] = min(
dp[i + 1][j + 1][change(g[j])],
dp[i][j][k] + 1);
}
}
}
}
printf("%d\n", ans);
}
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
HDU 3831 DICS的更多相关文章
- POJ 3831 & HDU 3264 Open-air shopping malls(几何)
题目链接: POJ:id=3831" target="_blank">http://poj.org/problem?id=3831 HDU:http://acm.h ...
- HDU 3264/POJ 3831 Open-air shopping malls(计算几何+二分)(2009 Asia Ningbo Regional)
Description The city of M is a famous shopping city and its open-air shopping malls are extremely at ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
随机推荐
- hdu 1561 The more, The Better (依赖背包 树形dp)
题目: 链接:点击打开链接 题意: 非常明显的依赖背包. 思路: dp[i][j]表示以i为根结点时攻击j个城堡得到的最大值.(以i为根的子树选择j个点所能达到的最优值) dp[root][j] = ...
- SE 2014年5月5日
如图配置 某企业网络规划图(三台交换设备/三台路由设备) 接入层 SW1 连接终端用户 汇聚层 SW2 SW3 核心层 R1 R2 R5 1. 如图 SW1 SW2 SW3 物理链路两两相连接,网络中 ...
- mysql联合索引的应用
有一个log表,结构是这样的: CREATE TABLE `weblog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `ip` varc ...
- tomcat压缩优化和缓存策略
tomcat压缩内容 tomcat的压缩优化就是将返回的html页面等内容经过压缩,压缩成gzip格式之后.发送给浏览器,浏览器在本地解压缩的过程. 对于页面量信息大或者带宽小的情况下用压缩方式还是蛮 ...
- jquery validation remote depends 验证触发条件
背景: 1:简介页面的变化: 2:邮箱不能反复 改动页面,邮箱默认带出,但字段上带有remote验证.不能反复,焦点由邮箱输入框失去时.会默认触发remote验证. 介绍完成 watermark/2/ ...
- SWT中的GridLayout(转)例子不错
GridLayout 是一个非常强大的布局管理器,它可以实现很多复杂的布局,名字中暗示它将所有控件放置在类似网格的布局中.^__^GridLayout 有两个构造函数. GridLayout的构造函数 ...
- 关于SVN配置文件的一个小例子
1 背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...
- evnetlet hub
hub 是 Eventlet's event loop的主要部分,用于分配I/O 事件 和调度绿色线程. Eventlet 有多种hub实现,现支持一下几种: epoll poll selects p ...
- CSS之box-sizing的用处简介
前几天才发现有 box-sizing 这么个样式属性.研究了一番感觉非常有意思, 通过指定容器的盒子模型类型,达到不同的展示效果 比如:当一个容器宽度定义为 width:100%; 之后.假设再添加 ...
- 阐述php(四) 流量控制
一个.选择结构 1. 单路分支 <? php if(条件){ 运行一条语句; } ?> 2. 双路分支 <?php if(条件) 运行一条语句; }else 运行一条语句; } ?& ...