#include<stdio.h>
#include<algorithm>
using namespace std;const int maxn=1005;
const int INF=1000000;
char s[maxn],t[maxn];
int dp[maxn][11][11];
//dp[i][j][k]表示前i位,第i位状态为j,i+1状态为k
//前i-1位对第i位的影响最多为 第i位,第i+1位只要记录前i-1对第i位的影响状态即可int n;
void Min(int &a,int b){if(a>b)a=b;
}   int Gao(int x,int y){int ret=0;while(x!=y){x++;ret++;if(x>=10)x=0;}return ret;
}int Kao(int x,int y){int ret=0;while(x!=y){x--;ret++;if(x<0)x=9;}return ret;
}
int m1[15][15];
int m2[15][15];void init(){for(int i=0;i<=9;i++)for(int j=0;j<=9;j++){m1[i][j]=Gao(i,j);m2[i][j]=Kao(i,j);}
}int main(){int i,j,k,jj,kk;init();while(scanf("%s%s",s,t)!=EOF){n=strlen(s);s[n]=s[n+1]=t[n]=t[n+1]='0';for(i=0;i<=n;i++)for(j=0;j<10;j++)for(k=0;k<10;k++)dp[i][j][k]=INF;dp[0][s[0]-'0'][s[1]-'0']=0;for(i=1;i<=n;i++){for(j=0;j<10;j++)for(k=0;k<10;k++){int t1=m1[j][t[i-1]-'0'];for(jj=0;jj<=t1;jj++)for(kk=0;kk<=jj;kk++){Min(dp[i][(k+jj)%10][(s[i+1]-'0'+kk)%10],dp[i-1][j][k]+t1);}int t2=m2[j][t[i-1]-'0'];for(jj=0;jj<=t2;jj++)for(kk=0;kk<=jj;kk++){Min(dp[i][(k-jj+10)%10][(s[i+1]-'0'-kk+10)%10],dp[i-1][j][k]+t2);}}}printf("%d\n",dp[n][0][0]);}return 0;
}

HDU locker 4433相关推荐

  1. hdu 4433 locker

    http://acm.hdu.edu.cn/showproblem.php?pid=4433 记忆化搜索+DP ans[x][f][ff]; 表示到a的第x位时 此位加f ,x-1位 加ff 的情况下 ...

  2. hdu 4433 locker(DP)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4433 题目大意:就是给你一个序列,相当于一个可以转的那种密码锁的初始状态,0往下转是9,9往上转是0,现在 ...

  3. UVA 1631 Locker(HDU 4433)(DP)

    A password locker with N digits, each digit can be rotated to 0-9 circularly. You can rotate 1-3 con ...

  4. [HDU 4433]locker[DP]

    题意: 给出密码做的现状和密码, 每次可以移动连续的最多3列, 向上或向下, 求将密码调出来所需要的最少步数. 思路: 首先应看出,恢复的过程中, 调每一位的时间顺序是不影响的, 不妨就从左到右一位位 ...

  5. ACM练级日志:HDU 4433 Locker

    天津现场赛的一道题,说有两个密码串,每次你可以转第一个串连着的最多三个数,问最少转多少次能把第一串转成第二串. 开始以为是搜索,后来一看n<=1000直接吓尿-- 后来以为是字符串,但是怎么做也 ...

  6. HDU 4433 locker

    很暴力的一个dp,dp[i][j][k] 表示的是第i位时,前i-1位都匹配后,当由前面的状态推出第i位+j,i+1位+k时最少用多少步.注意up和down要分开算.. #include<alg ...

  7. HDU 4433 DP

    题意 给1000个数字,每次可以转动1-3连续位,问从一个状态转到另一个状态最少需要多少步. 题解 比赛时候想复杂了,这道题跟BFS没有任何关系.不过还是有很多神牛用记忆化搜索过了.主要就是设计DP状 ...

  8. HDOJ 4433 Locker (数位DP)

    题意,给一个密码锁的初始状态和目标状态,每次可以将连续的 1 - 3 位向上或者向下挪一位,问达到目标状态最少需要多少次. 参考了网上的题解... dp[i][x][y] 表示 在第 i-1 位是 x ...

  9. dp hdu-4433 locker

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4433 题目大意: 给两个长度相等的数字串s1,s2.每次操作可以把连续的最多三位都+1或-1,如果超 ...

最新文章

  1. html插入不规则表格,如何构建HTML表格中的不规则形状?
  2. .net常用技巧及调优
  3. iOS app性能优化的那些事
  4. 基于GIS的视频管理指挥平台
  5. Java设计模式之观察者Observer模式代码示例
  6. python poll_python IO 多路复用 select poll epoll
  7. 第二章:变量和运算符
  8. 断开式数据连接 DataSet与DataAdapter对象 1204
  9. a href点击无效_jquery click()方法模拟点击事件对a标签不生效的解决办法
  10. Netty工作笔记0031---NIO零拷贝应用案例
  11. Rational Rose 逆向工程(java) 常见问题二则
  12. canvas arc() 方法绘制弧线、曲线、圆形,rect() 绘制矩形
  13. f3 fatfree小型php,F3-fatfree小型php框架教程(三)
  14. mysql安装版与mysql解压版议论
  15. linux 桥,Linux网桥
  16. 中国露营、户外和越野拖车市场运行动态与发展趋势分析报告2022-2028年
  17. bookxnote手机版_bookxnote中文版下载
  18. r语言做绘制精美pcoa图_如何绘制精美的PCoA图形
  19. 支付宝称:已支持微信转账,结果被骂惨了...
  20. CentOS 7 安装rar解压缩软件

热门文章

  1. javascript 图片轮播效果
  2. 春考计算机考试科目,山东春季高考考试科目公告
  3. OCP-V13-676
  4. 二进制安装k8s-部署scheduler
  5. 回首年少岁月的那个她,真叫人难过又怦然心动
  6. c语言算法设计 pdf下载,数据结构算法设计与实现指导(C语言版).pdf
  7. Vegas怎么给视频加水印、打码?
  8. excel拆分成多个文档
  9. 12C ORA-错误汇总6 ORA-07500 to ORA-09859
  10. SQL注入绕过安全狗