题目要求简述:给定长度分别为n1,n2(n1,n2<=100)且每列的高度只为1或者2的长条。需要将他们放入一个高度为3的容器,问能够容纳它们的最短容器长度。

思路就是固定一个字符串a,字符串b移动,再固定b,让a移动,取二者长度最小值。

之前写的函数有问题,wrong answer错误了很多遍,调试的时候学习了重定向,参考了一篇博客ac的。

#include<fstream>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define max 110
using namespace std; int min(const int &i, const int &j) {
return i<j ? i : j;
} int offset(char *s1, char *s2, int &ls1, int &ls2) {
int sum = ls1 + ls2, f, l = ls1 + ls2, minn = min(ls1, ls2);
bool flag;
for (int i = ;i < ls1;i++) {
flag = true;f = min(minn, ls1 - i);
for (int j = ;j < f;j++) {
if ((s1[i + j] == '') && (s2[j] == '')) {
flag = false;
break;
}
}
if (flag&&l > sum - f) {
l = sum - f;
}
}
return l;
} int main()
{
int offset(char *s1, char *s2, int &ls1, int &ls2);
char str1[max],str2[max];
int l1,l2;
/*ifstream fin("G:\\algorithm\\uva\\input\\1588in.txt");
ofstream fout("G:\\algorithm\\uva\\output\\result.txt");
streambuf *cinbackup;
streambuf *coutbackup;
coutbackup = cout.rdbuf(fout.rdbuf());
cinbackup = cin.rdbuf(fin.rdbuf()); */
while (cin >> str1 >> str2) {
l1 = strlen(str1);
l2 = strlen(str2);
int res1 = offset(str1,str2,l1,l2);
int res2 = offset(str2,str1,l2,l1);
cout << min(res1,res2) << endl;
memset(str1, , sizeof(str1));
memset(str2, , sizeof(str2));
}
return ;
}

参考博客地址

uva1588kickdown的更多相关文章

  1. UVA1588-Kickdown

    2018-10-30-18:27:03 原题链接 题目描述: 给出两个长度分别为n1,n2且每列高度只为1或2的长条,需要将它们放入一个高度为3的容器,求出能够容纳他们的最短容器长度. 本题思路: 模 ...

随机推荐

  1. android studio入门

    目前的工作是蓝牙相关的,所以最近心血来潮想折腾下Android开发,方便调试自己的固件, 装好Android Studio跟SDK之后,感谢nordic的公开代码,研究了一会,感觉并没有多费劲 相关的 ...

  2. jquery'中的匿名函数

        //jquery'中的匿名函数 (function(){ alert("this is a test"); })(); //和这个基于jQuery的比较下: $(funct ...

  3. 更新日志(建议升级到2016.12.17) && 更新程序的方法

    更新程序的方法: 1,在控制面板里点击备份当前数据库文件到磁盘,把当天获取的信息从内存写到磁盘/存储卡.2,下载最新版的源码 wget -O "infopi.zip" " ...

  4. windows系统下在dos命令行kill掉被占用的pid (转)

    原文出自:http://www.2cto.com/os/201304/203771.html   windows系统下在dos命令行kill掉被占用的pid   1.开始-->运行-->c ...

  5. 转义字符(\)对JavaScript中JSON.parse的影响概述

    JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象,本文为大家介绍下转义字符对JSON.p ...

  6. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

  7. lumen Response

    1.基本响应 所有路由和控制器都会返回某种被发送到用户浏览器的响应,Lumen提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串: $app->get('/', ...

  8. Linux的Service/Daemon你真的懂了吗?

    一 service与一般的程序的区别 service(也称为daemon)表示后台运行的程序,一般随系统的启动自动地启动且在用户logoff后仍然能够继续运行.该daemon进程一般在启动后需要与父进 ...

  9. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

    所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...

  10. (PHP)程序中如何判断当前用户终端是手机等移动终端

    推荐: Mobile-Detect:https://github.com/serbanghita/Mobile-Detect/blob/master/Mobile_Detect.php Detect ...