uva1588kickdown
题目要求简述:给定长度分别为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的更多相关文章
- UVA1588-Kickdown
2018-10-30-18:27:03 原题链接 题目描述: 给出两个长度分别为n1,n2且每列高度只为1或2的长条,需要将它们放入一个高度为3的容器,求出能够容纳他们的最短容器长度. 本题思路: 模 ...
随机推荐
- mybatis——延迟加载
------------------------------------------------SqlMapConfig.xml------------------------------------ ...
- ASP.NET Web 应用程序及页面生命周期
以客户端浏览器向 ASP.NET Web 应用程序页面发送请求(Request)为起点,以浏览器收到 Web 服务器的响应(Response)为终点,这一完整的过程被称为"应用程序及页面的生 ...
- Ajax - ASP.NET MVC 4 系列
ASP.NET MVC 框架中包含一组 Ajax 辅助方法,可以用来创建表单和指向控制器操作的链接,它们是异步的,且不用编写任何脚本代码来实现程序的异步性,但需要引入脚本文件 jquer ...
- golang: 根据json生成go源文件
https://github.com/ChimeraCoder/gojson $ git clone https://github.com/ChimeraCoder/gojson.git$ cd go ...
- appium 环境搭建 java
1 安装node.js 1.1 安装node.js http://nodejs.cn/download/ 1.2.下载后直接点击exe,按照提示一步一步的安装 1.3 安装成功后,运行cmd,输入no ...
- Android应用开发-数据存储和界面展现(二)(重制版)
SQLite数据库 // 自定义类MyOpenHelper继承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), &q ...
- LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级
LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一 ...
- 北京动软VAR团队的HoloLens开发教程最新搜罗整理
日前,微软为Windows开发者带来Win10版HoloLens全息眼镜模拟器SDK开发套件工具,借助最新发布的VS2015 Update2和Win10 SDK工具,直接在PC平台上开发和调试原生Wi ...
- Debian MySQL 卸载和安装 PHP安装
如果是apt-get安装的 sudo apt-get --purge remove mysql-serversudo apt-get --purge remove mysql-clientsudo a ...
- Map以及Set的遍历(EntrySet方法,补充enumeration和Iterator的区别)
public void mearge(Map map) { Map returnMap = new HashMap<>(); // 转换为Entry Set<Map.Entry< ...