uva 1588 - Kickdown
来源:互联网 发布:大数据数据采集ppt 编辑:程序博客网 时间:2024/05/16 07:15
传送门:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4463
题意:给出两个长度为n1,n2(n1,n2<=100)且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器,求能够容纳它们的最短容器长度。
思路:先将n1固定不动,n2从第一位与n1比较是否两个相加大于四,是的话就将n2向右移动一位,再从头比较,直到没有任何一列相加大于四就记录下这种情况的最短长度;
然后将n2固定不动,执行一样的操作,求出另一个最段长度,最后取最小的
代码
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<iostream>#include<queue>#include<stack>#include <algorithm>#define LL long long #define MAX 30000#define INF 0x3f3f3f3fusing namespace std;char a[210], b[210]; int main(){ freopen("1.txt" , "r" , stdin); int i, j, len1, len2, ans, l1, l2; memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); while(scanf("%s%s", a, b) != EOF) { len1 = strlen(a); len2 = strlen(b); ans = max(len1, len2); for(i = 0; i < len1; i++) { for(j = 0; j < len2; j++) { if(a[i+j] + b[j] - '0'> '3') { break; } } if (j == len2) { break; } } l1 = i + len2; for(i = 0; i < len2; i++) { for(j = 0; j < len1; j++) { if(b[i+j] + a[j] - '0'> '3') { break; } } if (j == len1) { break; } } l2 = i + len1; ans = max(ans, min(l1, l2)); cout << ans << endl; memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); } return 0;}
0 0
- uva 1588Kickdown
- Kickdown UVa 1588
- UVa 1588 - Kickdown
- UVa 1588 - Kickdown
- UVa 1588 Kickdown
- UVA - 1588 Kickdown
- UVA - 1588 Kickdown
- UVa 1588 - Kickdown
- UVa-1588Kickdown
- UVA - 1588 Kickdown
- Uva - 1588 - Kickdown
- UVA-1588 Kickdown
- UVA 1588 Kickdown
- UVa 1588 kickdown
- uva 1588 - Kickdown
- UVA - 1588 Kickdown
- UVA - 1588 Kickdown
- UVa 1588 Kickdown
- 第四周项目3-单链表应用(2)连接
- 了解Java 垃圾回收(GC)的基础
- 有关状态压缩dp
- 第四周项目一建立单链表
- 第3周 项目4-顺序表应用(1)
- uva 1588 - Kickdown
- 第3周项目四顺序表的应用--1
- CF#318-Bear and Elections-贪心暴力
- iOS开发-文件管理
- Java学习笔记【继承之类、超类、子类】
- Freecms商业版标题颜色问题,font color=’000000’
- Eclipse插件开发资源查找
- 浅谈GIT与SVN
- Storyboard 模块化(1)