样例输入

2112112112
2212112
12121212
21212121
2211221122
21212

样例输出

10
8
15

解题思路:

最开始设想了四种情况, A固定, B左移或右移,或B掉头,左移或右移, 但经验告诉我不可能这么麻烦,
经过搜网后, 发现陷入了一个误区:在日常生活中是可以掉头的,但是在题给中,块由数字组成,所以掉头数字也会
变动,就不是同一个木块了。

因此就只剩下了两种情况, A固定,B左移或右移, 可以利用其对称性简化为一种, 也就是写一个函数,根据
传入参数的不同, 执行不同的情况:A固定,B右移 等价于 A左移,B固定。 缩短代码长度。

代码
#include <iostream>
#include <cstdio>
#include <string.h>
#include <string>
#include <algorithm>using namespace std ;//判断木块S2位移为k时,是否符合要求
bool test(int k , char s1[] , char s2[] ) {for ( int i = 0 ; s1[k+i] && s2[i] ; i++ )  if(s1[k+i] + s2[i] - 2*'0' > 3) return false ; return true ;
}//返回符合要求的情况
int fun(char s1[] , char s2[]) {int k = 0 ; while(!test(k,s1,s2))    //当不符合条件时,移位。 k++ ;
//为什么返回最大?
//若还是S1更长,则返回S1 ,  若S2位移了若干位后更长,则返回S2 return max(strlen(s1) , strlen(s2)+k) ;
} int main()
{char bottom[105] ;         //上面的木块char top[105] ;              //下面的木块while(scanf("%s%s",bottom,top) != EOF) //下条语句判断左移最优解还是右移最优解。 cout << min(fun(bottom,top),fun(top,bottom)) << endl ; //调用algorithm中函数 return 0 ; }

收获:普适性的情况可以写函数解决,要养成好习惯。

UVa1588 | 算法竞赛入门经典(第二版) 习题3-11 换低档装置相关推荐

  1. 算法竞赛入门经典(第二版) | 习题3-5 谜题 (UVa227,Puzzle)(World Finals 1993)

    乍一看是一个大水题,但World Finals这两个词标示着老子世界决赛真题虽然题目很水但是数据就能卡死你.整整搞了五个小时,期间经历过崩溃(花了这么多时间搞一道大水题,还没AC),但好在坚持下来了, ...

  2. 算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)

    大意: 给定6个矩形的长和宽,判断他们能否构成一个长方体. 题目(提交)链接→UVa-1587 没使用过该网站的同学请猛戳这里→vJudge教程 储备知识: pair结构体: pair是将2个数据组合 ...

  3. 算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391

    题目:https://vjudge.net/problem/UVA-10391 思路:用vector存下单词,因为单词已按字典序排列于是复合词前半个单词一定在这个复合词之前,于是遍历寻找在首字母更变之 ...

  4. 算法竞赛入门经典第二版课后习题答案第二章

    算法竞赛入门经典第二版课后习题答案 第二章 习题2-1水仙花数 输出100-999中的所有水仙花数.若三位数ABC满足ABC=A^3+B^3+C^3,则称其为水仙花数.例如153=1^3+5^3+3^ ...

  5. UVA-12171 雕塑 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题目在<算法竞赛入门经典第二版>书中标注了星号,也是第一道出现星号的 ...

  6. 补学图论算法:算法竞赛入门经典(第二版)第十一章:

    补学图论算法:算法竞赛入门经典(第二版)第十一章: 倒排索引还没有实现! 下面是左神的图论算法,并查集笔记.和一个美团题目. ''' https://www.nowcoder.com/live/11? ...

  7. UVA-814 邮件传输代理的交互 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 #include<iostream> #include< ...

  8. UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...

  9. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)

    文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...

最新文章

  1. Nginx+uWSGI+Django原理
  2. 【错误记录】NDK 配置错误 ( C/C++ debug|arm64-v8a : Could not get version from cmake.dir path )
  3. 吵架后女生和男生的夜晚!所有男生都这样吗?
  4. C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)
  5. springmvc-interceptor(拦截器)
  6. 浅谈混合精度训练imagenet
  7. 冯诺依曼提出的三个计算机改进理论,冯诺依曼体系结构的计算机..docx
  8. MyCAT实现MySQL的读写分离
  9. paip.SVN merge分支合并到主干
  10. 1985高程基准与全球大地水准面(EGM2008)的关系综述
  11. linux服务器硬盘检测,Linux服务器硬盘坏道检测
  12. office2003word解除安全模式启动
  13. 关于lib文件夹和报java.lang.NoClassDefFoundError解决办法
  14. leetcode第643题C++
  15. Date类型接收空字符串(@InitBinder注解实现)
  16. 课后作业7.1:文件系统的静态结构
  17. 《现实世界的敏捷开发-大型敏捷研发团队》培训课程扩展阅读
  18. 【SAP学习小记】SAP中常用物料表和bom表,以及关联信息
  19. 转-IE浏览器自动配置代理脚本-Proxy.PAC文件及PAC相关语法
  20. 最强天文模拟软件:Starry Night Pro Plus 8 for Mac

热门文章

  1. redis一主一从一哨兵,第一次主从切换成功,再次主从切换无法正常执行?
  2. Java判断类和实例的关系
  3. SpringMVC中@ResponseBody的相关注意点
  4. Go channel 的妙用
  5. Linux下编写UDP/TCP版本的服务器和客户端的流程
  6. 拍乐云基于AV1的实时视频系统技术实践
  7. 音视频技术开发周刊 | 208
  8. 新版SVT-AVS3发布 编码效率提升并提供更灵活的编码工具
  9. 多媒体技术生态未来的三个关键要素
  10. 【线上分享】基于AI的超分辨技术在RTC领域的技术难点与挑战