专栏首页Vincent-yuan换抵挡装置(Kickdown)

换抵挡装置(Kickdown)

题目

给出两个长度分别是 n1 , n2 (n1,n2<=100)且每列的高度只为1或2的长条。

需要将他们放入一个高度为3的容器,问能容纳他们的最短容器长度。

分析

每组输入两行数,且只由1,2构成。然后上下两排需要以最小长度咬合在一起,

不过可以1对1形成一个空缺。然后求咬合后的总长度的最小值。

读入时可以先用字符串存储,然后转化为数组。这样可以方便运算同时利用字符数组的

易写入特性。

之后只需两次二层循环遍历即可(分别以其中一行为固定,另一行进行移动)。

不符合的条件为上下咬合后高度大于3.

c实现

#include<stdio.h>
#include<string.h>
#define maxn 205

int main(){
    
    char ctop[maxn],cbottom[maxn];
    int top[maxn],bottom[maxn];
    
    while(scanf("%s%s",ctop,cbottom)==2)
    {
        memset(top,0,sizeof(top));
        memset(bottom,0,sizeof(top));
        int lent=strlen(ctop);
        int lenb = strlen(cbottom);
        //把输入的字符串转到int数组
        for(int i=0;i<lent;i++){
            top[i]=ctop[i]-'0';
        } 
        for(int i=0;i<lenb;i++){
            bottom[i] = cbottom[i]-'0';
        }
        
        //下面不动 
        int i,j;
        for(i=0;i<lenb;i++){
            for(j = 0;j<lent;j++){
                if(bottom[i+j]+top[j]>3){
                    break;
                }
            }
            if(j==lent){
                break;
            }
        }
        int ans1 = i+lent<lenb?lenb:i+lent;
        
        //上面不动
        for(i=0;i<lent;i++){
            for(j=0;j<lenb;j++){
                if(top[i+j]+bottom[j]>3){
                    break;
                }
            }
            if(j==lenb){
                break;
            }
        } 
        int ans2 = i+lenb<lent?lent:i+lenb;
        
        printf("%d\n",ans1 < ans2?ans1:ans2);
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 猜数字游戏的提示

    实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。

    Vincent-yuan
  • DNA序列(DNA Consensus String)

    输入m个长度为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。

    Vincent-yuan
  • 孪生素数

    题目描述 所谓孪生素数指的是间隔为2的相邻的素数,他们之间的距离已经近得不能再近了,就像孪生兄弟一样,最小的孪生素数是(3,5),在100以内还有(5,7),(...

    Vincent-yuan
  • LinkedList给我深深的上了节for增强的课

    标题既然这么说,就证明它的确坑了我一把。在平时习惯使用了普通的for循环。所以在写遍历的时候也是经常使用这种。然而一味的使用它,给我带来了麻烦。项目开发中,有一...

    IT大咖说
  • 评分规则的优化(CS GT)

    本文介绍了一个优化适当评分规则的目标。该目标是使预测者付出二元水平的努力,从先验信念中提炼出后验信念的报酬增加最大化。在这个框架中,我们描述了简单环境下最优评分...

    Rosalie
  • 二维数组和循环-c语言学习笔记

    Youngxj
  • iOS-安装和使用 CocoaPods

    用户1890628
  • python程序打包新姿势(nuitka)

    Nuitka is a Python compiler written in Python. It's fully compatible with Python...

    追马
  • 产生否定常识(AI LG)

    常识知识的获取是人工智能领域的一个重要的公开挑战。在这篇进行中的论文中,我们研究了用新颖的语句自动扩充常识知识库(KB)的任务。我们凭经验表明,为完成任务获取有...

    田冠宇
  • 工具武装前端工程师

    本文主要介绍前端开发中常用的工具集合。 编辑器 1. SublimeText(Windows/Mac)可以长期免费试用 这个工具已经很火了,我之前是99%的码是...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券