习题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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

《算法竞赛入门经典2ndEdition 》习题3-11 换低挡装置(Kickdown, Uva1588)

这题我想的时候画了幅图帮助理解。 最初,将min初始化为m与d的长度之和。 思想就是最开始把m的首位跟d的最后一位对齐,若此时能够合适的匹配,就算出此时所需长度,并与当前的min取最小,更新m...

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

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

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

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

习题3-11 换抵挡装置 UVa1588

算法竞赛入门经典(第2版)第3章 数组和字符串 习题3-11 换抵挡装置 UVa1588 感悟。 1、上网站下载英文原题,仔细阅读。 2、持续的移动咬合想不清时,可以考虑分段的移动咬合...
  • mrcrack
  • mrcrack
  • 2016年07月31日 17:18
  • 147

UVA1588Kickdown

A research laboratory of a world-leading automobile company has received an order to create a specia...

UVA1588 UVALive3712 POJ3158 Kickdown

Regionals 2006 >> Europe - Northeastern 问题链接:UVA1588 UVALive3712 POJ3158 Kickdown。基础训练级的问题,用C语言编写程...

uva1588换低档装置Kickdown

背景:wrong得我想哭,一上午和一晚上。错主要错在:最先循环写成了死循环  考虑问题不全面,少考虑了一个方面  再写循环的时候循环终止条件错误 思路:第一段代码的思路是固定一个长的,让短的那根长条从...
  • qiweigo
  • qiweigo
  • 2015年01月24日 01:00
  • 919

UVA -1588 Kickdown

先槽一下,本来选这题是看实验室rank中这道题的通过率挺高,然而小白就是小白,写起来十分痛苦,以后还是乖乖按顺序写吧。题目大意:两个零件要拼装起来,齿必须对槽,不能齿对齿,但是槽可以对槽。 不过其...
  • kirsi0
  • kirsi0
  • 2016年07月16日 00:45
  • 108

uva1588 Kickdown

题目大意: 一个容器高度为3,俩个成员都是1或2的字符串,判断容器长度最短多少可以装下俩个字符串解题思路: 从字符串a的最后一个字符与字符串b的第一个字符开始,依次比较,找出最优解法一: #inclu...
  • Smiler_
  • Smiler_
  • 2017年01月12日 14:22
  • 130

UVA 1588_Kickdown

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51983 题目意思是说,给你两个每列高度为1或2的长条,让...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:习题3-11 UVa1588 Kickdown
举报原因:
原因补充:

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