意甲冠军:

按标题给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的更多相关文章

  1. POJ 3831 &amp; HDU 3264 Open-air shopping malls(几何)

    题目链接: POJ:id=3831" target="_blank">http://poj.org/problem?id=3831 HDU:http://acm.h ...

  2. 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 ...

  3. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  6. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  7. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

随机推荐

  1. Linux for周期运行命令注意事项

    假定for有一些符号循环指令,需要使用()封闭. for i in {1..4}; do (python /data/UGCRobot/manage/Scheduler.py 1.log > / ...

  2. follow through

    follow through是什么意思_follow through的翻译_音标_读音_用法_例句 - 必应 Bing Dictionary Web Images Videos Maps News D ...

  3. adt-bundle更新eclipse,以及搭建android环境

    曾经开发一直去android官网下载adt-bundle的.里面已经包括了eclipse和android SDK,搭建android环境特别方便,仅仅须要3步:1.下载并安装jdk(也就是jar se ...

  4. loading加载中效果

    (function(){ try{ var ui={ loading:{ addCssStyle:function(text) { var head = document.getElementsByT ...

  5. php判断页面是电脑登录还是手机登录

    首先说最根本的解决方法: 手机访问时,会附带发送user-agent信息,这个信息里面会有手机号码信息,那么如果能取得手机号码,则可以肯定是通过手机wap访问的.但是目前 中国移动已经屏蔽了user- ...

  6. pygame系列_游戏窗口显示策略

    在这篇blog中,我将给出一个demo演示: 当我们按下键盘的‘f’键的时候,演示的窗口会切换到全屏显示和默认显示两种显示模式 并且在后台我们可以看到相关的信息输出: 上面给出了一个简单的例子,当然在 ...

  7. ssh 实体关系分析确立(ER图-实体关系图)

    比較简单的方式就是依据模仿同类产品,依据同类产品的进行模仿,表单就是一个起码要加的字段,然后依据项目须要额外添加字段. 注意:实体类之间的引用关系还须要考虑性能的影响.如:单向或是双向. 表设计: 设 ...

  8. python学习笔记之七:魔法方法,属性

    在python中,有的名称会在前面和后面加上两个下划线,由这些名字组成的集合所包含的方法称为魔法方法(或者是特殊方法).如果对象实现了这些方法中的某一个,那么这个方法会在特殊的情况下(确切地说是根据名 ...

  9. abstract修饰方法总结

    abstract这种方法修饰,主要用在抽象类和抽象方法. 抽象的类是不可实例化的比如 public abstract class Test{ } 他能够含有抽象的方法 public abstract ...

  10. ACdream 之ACfun 题解

    A - ACfun Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitSta ...