Kickdown UVa 1588
来源:互联网 发布:淘宝代购 知识产权 编辑:程序博客网 时间:2024/05/09 06:16
题意:给出两个长度为n1,n2(n1,n2<=100)且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器,求能够容纳它们的最短容器长度。
思路:先将n1固定不动,n2从第一位与n1比较是否两个相加大于四,是的话就将n2向右移动一位,再从头比较,直到没有任何一列相加大于四就记录下这种情况的最短长度;
然后将n2固定不动,执行一样的操作,求出另一个最段长度,最后取最小的。一次AC真开森
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <string>using namespace std;char s1[110],s2[110];int n1[210],n2[210];int main(){ int i,j; while (~scanf("%s%s",s1,s2)) { memset(n1,0,sizeof(n1)); memset(n2,0,sizeof(n2)); int len1=strlen(s1); int len2=strlen(s2); for (i=0;i<len1;i++) n1[i]=s1[i]-'0'; for (i=0;i<len2;i++) n2[i]=s2[i]-'0'; int minlen=max(len1,len2); for (i=0;i<len1;i++) { for (j=0;j<len2;j++) { if (n1[i+j]+n2[j]>=4) break; } if (j==len2) break; } int le1=len2+i; for (i=0;i<len2;i++) { for (j=0;j<len1;j++) { if (n2[i+j]+n1[j]>=4) break; } if (j==len1) break; } int le2=i+len1; minlen=max(minlen,min(le1,le2)); printf("%d\n",minlen); } return 0;}
1 1
- 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
- 赶紧的·给我通过啊!唉··
- hibernate练习之单项关联一对多
- NSNull Category
- MTK中关于存储系统应用教程
- 【UVA】10317 - Equating Equations(dfs + 剪枝)
- Kickdown UVa 1588
- 【ThinkPHP学习】ThinkPHP upload与SAE storage结合,实现文件上传
- 从数据库获取数据源的UITableView列表增加手动排序的思路
- 【数据结构与算法】LCS(连续)
- 50个提高PHP程序运行效率的方法
- LRU Cache leetcode
- js利用cookie来提示用户的输入记录
- Java4Android之一切都是对象(1)
- DevExpress.XtraNavBar.NavBarControl的用法(加主菜单和子菜单)