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 ...
随机推荐
- Cygwin下vim按方向键出现ABCD;
1:乱码解决Option->Text设置编码 2:vim按方向键出现A.B.C.D 解决:--$ cd /usr/share/vim/vim73 (ps:看你的版本号.假设没有这个文件可能是/u ...
- Devstack: A copy of worked local.conf I'm sharing with you.
service_plugins = neutron.services.firewall.fwaas_plugin.FirewallPlugin [service_providers] service_ ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- Python的TkinterButton做为父窗口
#-*-coding:utf--*- import Tkinter,time,tkMessageBox,sys,BeBigModule class MainFrame: def __init__(se ...
- KISSY 库 demo
KISSY 是由淘宝前端project师们发起创建的一个开源 JS 类库. 它遵循的原则是 小巧灵活.简洁有用.愉悦编码.快乐开发. DEMO: <!DOCTYPE html> <h ...
- SVN的命令行操作
最近在进行svn二次开发,使用的是svnkit.看了很多svnkit的api,渐渐发现都是和SVN的命令行操作对应的.顺便研究一下svn的命名行操作. 1.将文件checkout到本地目录: 基本命令 ...
- HGE引擎 - 绘制,声音,碰撞处理
原帖地址:http://blog.csdn.net/i_dovelemon/article/details/8818037 另外,年代久远,该引擎官网早已上不去了!!! 1.库的安装和下载 从官网上h ...
- Microsoft Build 2016
Microsoft Build 2016 Day 1 记录 去年今日:Microsoft Build 2015 汇总 今年的 Bulid 时间是 3.30-4.1,第一天的主角主要是 Window ...
- Android涉及到的设计模式(转)
1.适配器模式:ListView或GridView的Adapter 简介:不同的数据提供者使用一个适配器来向一个相同的客户提供服务. 2.建造者模式:AlertDialog.Builder 简介:可以 ...
- ASP.NET之Cookie(坑爹的Response.Cookies.Remove)
原文:ASP.NET之Cookie(坑爹的Response.Cookies.Remove) 在web开发中Cookie是必不可少的 .NET自然也有一个强大的Cookie操作类,我们用起来也非常方便, ...