Uva 1588 Kickdown
Posted Wade_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva 1588 Kickdown相关的知识,希望对你有一定的参考价值。
这道题思路并不难想,在做题过程中主要遇到的困难有:
因为没有仔细的考虑边界情况,没有分析全面,导致因=没有取到而得不出正确结果,浪费的大量时间。
今后在做这类题目时,一定要先进行一个比较全面的分析+模拟,再动手写代码,避免浪费时间。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 #define maxn 1000 6 int main(){ 7 int len1,len2; 8 char s1[maxn],s2[maxn]; 9 while(scanf("%s %s",s1,s2)!=EOF){ 10 len1=strlen(s1); 11 len2=strlen(s2); 12 for(int i=len1;i<len1+len2;i++)s1[i]=‘0‘; 13 for(int i=len2;i<len1+len2;i++)s2[i]=‘0‘; 14 int ok; 15 int minv=maxn; 16 for(int i=0;i<=len2;i++){ 17 ok=1; 18 for(int j=0;j<min(len1,len2-i);j++){ 19 if(s2[i+j]+s1[j]-2*‘0‘>3){ 20 ok=0; 21 break; 22 } 23 } 24 if(ok&&max(len2,len1+i)<minv)minv=max(len2,len1+i); 25 } 26 for(int i=0;i<=len1;i++){ 27 ok=1; 28 for(int j=0;j<min(len2,len1-i);j++){ 29 if(s1[i+j]+s2[j]-2*‘0‘>3){ 30 ok=0; 31 break; 32 } 33 } 34 if(ok&&max(len1,len2+i)<minv)minv=max(len1,len2+i); 35 } 36 printf("%d\n",minv); 37 } 38 return 0; 39 }
以上是关于Uva 1588 Kickdown的主要内容,如果未能解决你的问题,请参考以下文章