当前位置: 首页 > news >正文

UVa-1588 Kickdown(换低档装置)

给出两个长度分别为n1,n2(n1,n2≤100)且每列高度只为1或2的长条(每个长条的一边是齐平的)。需要将它们放入一个高度为3的容器,问能够容纳它们的最短容器长度。

原题及输出格式见https://vjudge.net/problem/UVA-1588

思路:将较长的一根固定,用短长条去遍历即可。本题的关键在于两点

1.将完全内部嵌合以及部分嵌合的情况分类讨论。

2.不仅有右方部分嵌合,别忘了短条在左方部分嵌合的情况。(这个左方是相对的,看你怎么想了)

以下是我的C++代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 string A, a;
 6 int main()
 7 {
 8     while (cin >> A >> a)
 9     {
10         int rec = 0, MIN = 200; //最终答案不会超过200
11         if (a.size() > A.size())swap(A, a);
12         auto j = A.size(), k = a.size();
13         string A = string(a.size(), '0') + ::A + string(a.size(), '0');//作用域运算符取得外部变量,之后便隐藏掉外部A
14         auto J = A.size();
15         for (decltype(a.size())i = 0; i < J - k; ++i)
16         {
17             decltype(a.size())m = 0, n = i;
18             for (; m < k; ++m, ++n)
19             {
20                 if (A[n] - '0' + a[m] - '0' <= 3)continue;
21                 else break;
22             }
23             if (m == k)
24             {
25                 if (i < k) { if (k - i + j < MIN)MIN = k - i + j; }   //左嵌合
26                 else if (i > j) { if (i < MIN)MIN = i; } //右嵌合
27                 else { if (j < MIN)MIN = j; }
28             }
29         }
30         cout << MIN << endl;
31     }
32     return 0;
33 }
View Code

转载于:https://www.cnblogs.com/starpast/p/8401387.html

相关文章:

  • 大数据学习线路整理
  • Unity Android 5.6版本Resources.Load效率的问题
  • SQL——自定义的fn_Split函数
  • [js]js设计模式小结
  • 创建链接服务器
  • 每天一杯C_C89、C99、C11等之C语言标准
  • 如何禁止windowsxp启动时检测硬盘?
  • [TS] Class Properties Public, Private and Read Only Modifiers
  • JavaScript高级程序设计(第3版)pdf
  • head first 设计模式pdf
  • codeforce 140A - New Year Table
  • 微信小程序------代码构成
  • 斐波那契数列集锦
  • java学习书籍推荐
  • HDU 1568 Fibonacci
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Angular数据绑定机制
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ES6简单总结(搭配简单的讲解和小案例)
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java教程_软件开发基础
  • Redis 懒删除(lazy free)简史
  • SQLServer之索引简介
  • Vue官网教程学习过程中值得记录的一些事情
  • vue自定义指令实现v-tap插件
  • WebSocket使用
  • windows-nginx-https-本地配置
  • 从tcpdump抓包看TCP/IP协议
  • 浏览器缓存机制分析
  • 如何编写一个可升级的智能合约
  • 使用 QuickBI 搭建酷炫可视化分析
  • 算法---两个栈实现一个队列
  • 译自由幺半群
  • 自定义函数
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Java NIO(一)FileChannel
  • ###C语言程序设计-----C语言学习(3)#
  • #stm32驱动外设模块总结w5500模块
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C语言)共用体union的用法举例
  • (Forward) Music Player: From UI Proposal to Code
  • (超详细)语音信号处理之特征提取
  • (二)PySpark3:SparkSQL编程
  • (二)windows配置JDK环境
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (汇总)os模块以及shutil模块对文件的操作
  • (篇九)MySQL常用内置函数
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)nsfocus-绿盟科技笔试题目
  • (转)shell调试方法
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core 6 集成和使用 mongodb