习题3-11 UVa1588 Kickdown

原创 2015年11月20日 19:49:55

要点:
1.有三种可能:全在底板上,部分在底板上以及一点都不能在底板上,所以输入的字符串的长度有关系,同一组颠倒顺序结果不一样,因此都用i所在的数组去找j所在的数组,i所处的数组长度不同结果不同,去结果中最小的那个

#include<stdio.h>
#include<string.h>
int main()
{
    char a[110], b[110];
    int i, j, m, n,t;
    while (scanf("%s%s", a, b) != EOF)
    {
        m = strlen(a);
        n = strlen(b);
        i = j = t = 0;
        while (j < m&&i < n)  //用while简单,for相当费劲
        {
            if (a[j] + b[i] - 96 <= 3)
                i++, j++;  //也可以用,在一个句子里使用多个运算
            else
                t++, i = 0, j = t;  //如果大于3,i先归零从头开始,用t记录小于等于3的时候前j的位置
        }
        int count1 = m + n - i; //直接减去i即可
        i = j = t = 0;
        while (i < m&&j< n)  //都是用i所在数组去找但数组顺序会变
        {
            if (a[i] + b[j] - 96 <= 3)
                i++, j++;  
            else
                t++, i = 0, j = t;  
        }
        int count2 = m + n - i; 
        printf("%d\n", count1 < count2 ? count1 : count2);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

UVa 1588 - Kickdown

其实不算难,一开始WA的时候想是不是反转的w
  • xuziye0327
  • xuziye0327
  • 2014年10月19日 16:08
  • 2974

UVa1588 - Kickdown

这个问题的题意看好半天才看懂,相当于求两个字符串的“公共子串”,但是要求子串的值的和小于等于3 代码如下: #include #include #include using namespa...
  • wuli2496
  • wuli2496
  • 2015年11月09日 21:02
  • 393

Kickdown, ACM/ICPC NEERC 2006, UVa 1588

Kickdown Description A research laboratory of a world-leading automobile company has received an or...
  • Noob_f
  • Noob_f
  • 2014年12月30日 21:32
  • 1725

UVA 1588 Kickdown & ACM/ICPC NEERC 2006 解题报告

uva 1588 Kickdown 解题报告
  • SHU_onisac
  • SHU_onisac
  • 2015年08月17日 18:15
  • 522

UVA 1588_Kickdown

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51983 题目意思是说,给你两个每列高度为1或2的长条,让...
  • miao_2cm
  • miao_2cm
  • 2015年09月29日 21:45
  • 272

Uva1588 Kickdown

题意:给出两个长度分别为n1,n2(n1,n2 分析:只要枚举一个串的起始位置看能否放下另外一个串就行了,然后再枚举另外一个串。 注意串不能进行反转!!! 代码: #i...
  • qq_31917799
  • qq_31917799
  • 2016年06月26日 20:24
  • 473

习题3-11 换低挡装置(Kickdown, ACM/ICPC NEERC 2006, UVa1588)

WA了5次~~ #include #include #include #define mem(x) memset(x,0,sizeof(x)) using namespace std; in...
  • zhonglong_lin
  • zhonglong_lin
  • 2017年11月25日 10:03
  • 60

算法竞赛入门经典(第2版)习题3-11 换低挡装置 Kickdown UVa1588

逻辑很简单 1.读入n1/n2,测量各自长度 2.
  • archya
  • archya
  • 2014年07月14日 10:28
  • 1136

习题3-11 换低挡装置 UVa1588

1.题目描述:点击打开链接 2.解题思路:本题要求找一个尽量小的长度,使得能够容纳下两个不同的装置。还是考虑暴力搜索:假设两个装置分别为a,b,,长度分别为n1,n2.那么固定b(b的起始位置固定到位...
  • u014800748
  • u014800748
  • 2015年03月23日 19:10
  • 437

UVA1588 UVALive3712 POJ3158 Kickdown【水题】

Kickdown Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2192   Accepted: 938 ...
  • tigerisland45
  • tigerisland45
  • 2016年08月02日 16:20
  • 783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:习题3-11 UVa1588 Kickdown
举报原因:
原因补充:

(最多只允许输入30个字)