2012天津C题
行李箱上的密码锁大家都知道, 现在给我们长度为n(n<=1000)的两个密码串,每次可以转动连续的1->3个字符1格,问最少多少次可以使得第一个串变成第二个串
经历了搜索,贪心,的思路后,最终想到了动态规划。
因为第一个字符如果不在位,那么肯定是要处理的,否则那么相当于子问题。
所以定义dp[i][k1][k2]为第i个字符在位时,第i+1个字符向上走了k1格,第i+2个字符向上走了k2格。
当状态为dp[i][k1][k2]时,为了要使的第i+1在位,
那么可以向上走 t = (des[i] - (src[i]+10)%10 + 10)%10 步
或者向下走 t = 10 - t 步
那么第i+2个可以走0<=a<=t步
而第i+2个可以走0<=b<=a步, 这个没考虑到,wa了好久。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int INF = <<;
int dp[+][][];
char src[+],des[+];
int main()
{
//freopen("/Users/whoami/in.txt", "r", stdin);
while(scanf("%s%s",src,des)!=EOF)
{
int n = strlen(src);
for(int i=;i<=n;++i)
for(int k1=;k1<;++k1)
for(int k2=;k2<;++k2)
dp[i][k1][k2] = INF;
dp[][][] = ;
for(int i=;i<n;++i)
{
for(int k1=;k1<;++k1)
for(int k2=;k2<;++k2)
{
if(dp[i][k1][k2]==INF)continue;
int t = (des[i] - src[i] - k1+)%;
for(int a=;a<=t;++a)
{
for(int b=;b<=a;++b)
dp[i+][(k2+a)%][b] = min(dp[i+][(k2+a)%][b],dp[i][k1][k2]+t);
} t = - t;
for(int a=;a<=t;++a)
{
for(int b=;b<=a;++b)
dp[i+][(k2-a+)%][(-b)%] = min(dp[i+][(k2-a+)%][(-b)%],dp[i][k1][k2]+t);
} } }
printf("%d\n",dp[n][][]);
}
return ;
}
2012天津C题的更多相关文章
- 2012天津E题
给我们n个坐标点和一个距离d,表示车开m米就没油了. 然后要选几个点建立油站,使得能够从1出发遍历所有的点,然后回到1. 并且规定1这个点必须有油站,在第i个点建立油站的费用是 2^(i-1) 因为 ...
- MT【259】2016天津压轴题之最佳逼近
(2016天津压轴题)设函数$f(x)=(x-1)^3-ax-b,x\in R$, 其中$a,b\in R$(1)求$f(x)$的单调区间.(2)若$f(x)$存在极值点$x_0$,且$f(x_1)= ...
- HDU 4279 Number(2012天津网络游戏---数论分析题)
转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:pid=4279">http://acm.hdu.edu ...
- USACO翻译:USACO 2012 JAN三题(2)
USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...
- USACO翻译:USACO 2012 JAN三题(1)
USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...
- 【2012天津区域赛】部分题解 hdu4431—4441
1001: 题意:给你13张麻将牌,问可以胡哪些张 思路: 枚举可能接到的牌,然后dfs判断能否胡 1002: 题意: 已知n,m 求 n的所有约数在m进制下的平方和 做法:队长用java高精度写的 ...
- HDU 4423 Simple Function(数学题,2012长春D题)
Simple Function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- USACO翻译:USACO 2012 JAN三题(3)
USACO 2012JAN(题目三) 一.题目概览 中文题目名称 放牧 登山 奶牛排队 英文题目名称 grazing climb lineup 可执行文件名 grazing climb lineup ...
- hdu 4278 2012天津赛区网络赛 数学 *
8进制转为10进制 #include<cstdio> #include<iostream> #include<algorithm> #include<cstr ...
随机推荐
- 记一个手游app数据文件的破解
出于一些非常猥琐的须要,同一时候自己也想做一些新奇的尝试,周末用了大半天时间破解了某款手游的数据文件. 过程比我预想的要顺利,主要原因还是我们开发者的懈怠.咳咳. 步骤例如以下: 下载安装包,解压,发 ...
- iOS 5 故事板入门(3)
原文: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-2 Segues 介绍 是时候在我们的故事板中加入更 ...
- 【老鸟学算法】包含 min函数的栈设计——java实现
要求: 1. 定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素. 2. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). 这是考验“栈”数据结构设计.众所周知,栈 ...
- discuz!代码内置颜色大全(收藏)
加闪烁字:[light]文字[/light] 加文字特效:[shadow=255,red,2]文字[/shadow]: 在标签的中间插入文字可以实现文字阴影特效,shadow内属性依次为宽度.颜色和边 ...
- uva 10602 Editor Nottoobad(排序)
题目连接:10602 Editor Nottoobad 题目大意:要输入n个单词,现在有三种操作, 1.输入一个字符,需要按下一次按键. 2.通过声控删除一个字符.3.通过声控复制一遍上面的单词.现 ...
- Html中隐藏a标签
<div><a href="#"><span style="visibility:hidden">我的</span&g ...
- Java经典23种设计模式之创造型模式(一)
设计模式被称为程序猿的内功,之前零零散散的看过一大部分,但自己么有总结过.故此次在这里总结下.值得一提的是,设计模式并不是Java所特有.由于一直搞Android.这里就用Java为载体.最经典的设计 ...
- C#反射Assembly 具体说明
1.对C#反射机制的理解 2.概念理解后,必须找到方法去完毕,给出管理的主要语法 3.终于给出有用的样例,反射出来dll中的方法 反射是一个程序集发现及执行的过程,通过反射能够得到*.exe或*.dl ...
- Java泛型之<T>
这里不讲泛型的概念和基础知识,就单纯的就我的理解说一下泛型中的<T> 一. <T> 下面的一段码就可以简单使用了<T>参数,注释就是对<T>的解释. p ...
- XML序列化反序列化—常用类
public class XMLSerializer { #region (public) xml序列化 /// <summary> /// ...