UVA 1588
来源:互联网 发布:mac重装系统无法验证 编辑:程序博客网 时间:2024/06/11 08:12
题目大意:上下两个板,由字符串组成,’1‘为平,’2‘为凸,只要不是两个凸相对就可以镶在一起。问两个板平拼在一起需要最短多长。板不能转。
解题思路:分三种情况定位两个板的位置,往后走,第一种,内镶,第二种,短板从左进入,第三种短板从右进入。循环判断。最短为长板的长度,最长为两板相加。
ac代码:
#include <iostream>#include <cstring>using namespace std;int n, len1, len2, sum, jud, temp;char a[1005], b[1005];void swap(){char c[105];int temp;strcpy(c, a), strcpy(a, b);strcpy(b, c), temp = len1;len1 = len2, len2= temp;}int main(){while (scanf("%s%s", a, b)!=EOF){len1 = strlen(a), len2 = strlen(b);sum = len1 + len2;if (len1 < len2)swap();for (int i=0; i<=len1-len2; i++){jud = 1;for (int j=0,k=i; j<len2; j++,k++)if (a[k] + b[j] - '0' > '3'){jud = 0;break;}if (jud)sum = len1;}for (int i=1; i<len2; i++){jud = 1;for (int j=len2-i,k=0; j<len2; j++,k++)if (a[k] + b[j] - '0' > '3'){jud = 0;break;}if (jud){temp = len1 + len2 - i;if (sum > temp)sum = temp;}jud = 1;for (int j=0,k=len1-i; k<len1; j++,k++)if (a[k] + b[j] - '0' > '3'){jud = 0;break;}if (jud){temp = len1 + len2 - i;if (sum > temp)sum = temp;}}printf("%d\n", sum);}return 0;}
阅读全文
0 0
- uva--1588
- UVA-1588
- UVA 1588
- UVa 1588
- UVA 1588
- uva 1588Kickdown
- Kickdown UVa 1588
- UVa 1588 - Kickdown
- UVa 1588 - Kickdown
- UVa 1588 Kickdown
- UVA - 1588 Kickdown
- UVa 1588 字符串
- UVA - 1588 Kickdown
- uva 1588 换挡
- UVa 1588 - Kickdown
- UVa-1588Kickdown
- UVA - 1588 Kickdown
- Uva - 1588 - Kickdown
- linux下maven安装与配置
- vue 改变对象的属性,视图不刷新的问题
- 数据库设计(E-R图)
- ORA-12638: 身份证明检索失败解决方法
- 【python 接口开发】如何用python开发自己的接口
- UVA 1588
- poj 3061 尺取法
- Hadoop MultipleOutput例子
- Oracle之PL/SQL学习笔记
- ArcGIS API for JavaScript心得体验
- 设计一个100亿计算器
- java web 入门必知
- 做一个主页导航
- Redis集群安装