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的容器,求出能够容纳他们的最短容器长度. 本题思路: 模 ...
随机推荐
- fdisk,mount.label
########fdisk ll /dev/sda* df -TH fdisk -cul fdisk -cu ~~n~~p~~+1G~~ partx -a /dev/sda ########EXT4 ...
- C# 创建开机启动核心代码
#region 访问 AppSettings private void SaveAppSetting(string key, string value) { var config = Configur ...
- 使用IntelliJ IDEA 配置Maven(入门)(转)
原文转自:http://blog.csdn.net/qq_32588349/article/details/51461182 1. 下载Maven 官方地址:http://maven.apache.o ...
- 自动化运维web环境搭建:Nginx+Django+uwsgi
参考资料: http://lovelace.blog.51cto.com/1028430/1600594 http://www.cnblogs.com/xiongpq/p/3381069.html 安 ...
- eclipse简单使用
1.10个快捷键: 1. ctrl+shift+r:打开资源 Control-Shift-T: 打开类型(Open type) Control-Shift-F: CodeàJavaàPre ...
- 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件
1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即 ...
- 如何通过SerialPort读取和写入设备COM端口数据
SerialPort类用于控制串行端口文件资源.提供同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问.另外,SerialPort的功能可以包装在内部 Stream ...
- MyXls: 导出Excel的各种设置
MyXls是一个操作Excel的开源类库,支持设置字体.列宽.行高(由BOSSMA实现).合并单元格.边框.背景颜色.数据类型.自动换行.对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单 ...
- golang
Golang, 以17个简短代码片段,切底弄懂 channel 基础 (原创出处为本博客:http://www.cnblogs.com/linguanh/) http://www.cnblogs.co ...
- EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性
EasyUI 中 DataGrid 控件 是我们经常用到的控件之一, 但是 DataGrid 控件 在绑定显示列时却不支持对象属性绑定. 模型如下: public class Manager impl ...