UVA 1588
来源:互联网 发布:诸神黄昏神羽进阶数据 编辑:程序博客网 时间:2024/06/14 13:45
UPDATE
UVA - 1588
Kickdown
Time Limit: 3000MS
64bit IO Format: %lld & %llu
Description
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.
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.
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
2112112112 2212112 12121212 21212121 2211221122 21212
2112112112 2212112 12121212 21212121 2211221122 21212
Sample Output
10 8 15
10 8 15
水题。。。两次遍历,取最小。
Memory: 0 KB Time: 0 MSLanguage: C++ 5.3.0 Result: AcceptedVJ RunId: 7043066 Real RunId: 17949716
#include<cstring>#include<cstdio>int main(){ int i,j,k,la,lb; char s[105],t[105]; while(scanf("%s %s",s,t)!=EOF) { int a[205]={0},b[205]={0}; int len1,len2; la=strlen(s); lb=strlen(t); for(i=0;i<la;++i) a[i+1]=s[i]-'0'; for(i=0;i<lb;++i) b[i+1]=t[i]-'0'; for(i=1;i<=la+lb;++i) { k=i; for(j=1;j<=la;++j,++k) if(b[k]+a[j]>3) break; if(j-1==la) { if(la>lb-i+1) len1=i-1+la; else len1=lb; break; } } for(i=1;i<=la+lb;++i) { k=i; for(j=1;j<=lb;++j,++k) if(a[k]+b[j]>3) break; if(j-1==lb) { if(lb>la-i+1) len2=i-1+lb; else len2=la; break; } } printf("%d\n",len1>len2?len2:len1); } 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
- 软件设计原则
- codeforces B. Chris and Magic Square
- Eclipse快捷键 10个最有用的快捷键
- 类型萃取
- PAT分类解析专辑说明
- UVA 1588
- Android之Adapter用法总结
- JavaScript 你可能会忘记的基础知识 (2)函数和参数表
- 玲珑学院OJ 1029 - Bob and Alice are playing factors (大整数分解)
- 九度OJ 1154 Jungle Roads
- (java题目第3讲)整数进制转换
- 创建一个简单的Flash动画
- 强制类型转换
- iptables详解