博客
关于我
Kickdown UVA - 1588
阅读量:422 次
发布时间:2019-03-05

本文共 3026 字,大约阅读时间需要 10 分钟。

A research laboratory of a world-leading automobile company has received an order to create a special transmission mechanism, which allows for incredibly efficient kickdown — an operation of switching to lower gear. After several months of research engineers found that the most efficient solution requires special gears with teeth and cavities placed non-uniformly. They calculated the optimal flanks of the gears. Now they want to perform some experiments to prove their findings.

The first phase of the experiment is done with planar toothed sections, not round-shaped gears. A section of length n consists of n units. The unit is either a cavity of height h or a tooth of height 2h. Two sections are required for the experiment: one to emulate master gear (with teeth at the bottom) and one for the driven gear (with teeth at the top).

There is a long stripe of width 3h in the laboratory and its length is enough for cutting two engaged sections together. The sections are irregular but they may still be put together if shifted along each other.

The stripe is made of an expensive alloy, so the engineers want to use as little of it as possible. You need to find the minimal length of the stripe which is enough for cutting both sections simultaneously.

Input

The input file contains several test cases, each of them as described below.

There are two lines in the input, each contains a string to describe a section. The first line describes master section (teeth at the bottom) and the second line describes driven section (teeth at the top). Each character in a string represents one section unit — 1 for a cavity and 2 for a tooth. The sections can not be flipped or rotated.

Each string is non-empty and its length does not exceed 100.

Output

For each test case, write to the output a line containing a single integer number — the minimal length of the stripe required to cut off given sections.

Sample Input

211211211222121121212121221212121221122112221212

Sample Output

10815

HINT

相当于两个滑块,一个不懂一个动,求最小长度。下面的代码可以更简洁一点,就是把重复的地方封装成函数,可以省不少代码量。

Accepted

#include
#include
#include
int main(){ char a[101]; char b[101]; char c[201]; while (scanf("%s%s", a, b) != EOF) { int lena = strlen(a); int lenb = strlen(b); int min = lena+lenb; for (int i = 0;i <= lena; i++) { int flag = 0; memset(c, '\0', sizeof(c)); strcpy(c, a); for (int j = 0;j < lenb;j++) { if (c[j + lena - i] != '\0') { c[j + lena - i] += b[j] - '0'; if (c[j + lena - i] > '3') { flag = 1;break; } } else c[j + lena - i] = b[j]; } if (!flag)min = strlen(c) < min ? strlen(c) : min; } for (int i = 0;i <= lenb;i++) { int flag = 0; memset(c, '\0', sizeof(c)); strcpy(c, b); for (int j = 0;j < lena;j++) { if (c[j + lenb - i] != '\0') { c[j + lenb - i] += a[j] - '0'; if (c[j + lenb - i] > '3') { flag = 1;break; } } else c[j + lenb - i] = a[j]; } if (!flag)min = strlen(c) < min ? strlen(c) : min; } printf("%d\n",min); }}

转载地址:http://jrxzz.baihongyu.com/

你可能感兴趣的文章
Node JS: < 二> Node JS例子解析
查看>>
Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime(93)解决
查看>>
Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
查看>>
Node 裁切图片的方法
查看>>
node+express+mysql 实现登陆注册
查看>>
Node+Express连接mysql实现增删改查
查看>>
node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
查看>>
Node-RED中Button按钮组件和TextInput文字输入组件的使用
查看>>
vue3+Ts 项目打包时报错 ‘reactive‘is declared but its value is never read.及解决方法
查看>>
Node-RED中Slider滑杆和Numeric数值输入组件的使用
查看>>
Node-RED中Switch开关和Dropdown选择组件的使用
查看>>
Node-RED中使用exec节点实现调用外部exe程序
查看>>
Node-RED中使用function函式节点实现数值计算(相加计算)
查看>>
Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
查看>>
Node-RED中使用JSON数据建立web网站
查看>>
Node-RED中使用json节点解析JSON数据
查看>>
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>