大意:

给定6个矩形的长和宽,判断他们能否构成一个长方体。


题目(提交)链接→UVa-1587
没使用过该网站的同学请猛戳这里→vJudge教程


储备知识:

pair结构体:
pair是将2个数据组合成一组数据,满足这个条件时就可以使用pair,如stl中的map,就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。
简而言之:就是封装好的结构体(只能是二变量)

分析:

最初的思路是:
先判断输入的数呈三对,找出每对中的一个面(共三个面),每个面的每条边都会出现在另外两个面其中之一。
优化的思路是:
用pair结构体存储一个面的两个边,而后排序,按升序排好的长方体,第一个变量的最小值必然等于接下来三个变量的最小值;第一个变量的最大值必然等于最后两个变量的最小值 ;第三个变量的最大值必然等于第四、五、六个变量的最大值。
例如(下面是排好序的六个变量):
6 13
6 13
6 25
6 25
13 25
13 25

输入输出格式:

1、EOF结束
2、每个输出结果间没有空格

代码(15\16\17行为核心代码):

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
pair <int,int> p[6];
int i;
int main() {while(1) {for(int i = 0; i < 6; i++) {if(!(cin>>p[i].first>>p[i].second)) return 0;if(p[i].first > p[i].second) swap(p[i].first, p[i].second);}sort(p, p+6); //按照首先first递增,其次second递增排序puts(p[0].first==p[1].first&&p[0].first==p[2].first&&p[0].first==p[3].first&& p[2].second==p[3].second&&p[2].second==p[4].second&&p[2].second==p[5].second&&    p[0].second==p[1].second&&p[0].second==p[4].first&&p[0].second==p[5].first ? "POSSIBLE" : "IMPOSSIBLE") ;}return 0;
}

收获:

1、pair结构体的用法
2、puts不需要加换行符,因为本就是一行一行输出
3、长方体的规则:按升序排好的长方体,第一个变量的最小值必然等于接下来三个变量的最小值;第一个变量的最大值必然等于最后两个变量的最小值 ;第三个变量的最大值必然等于第四、五、六个变量的最大值。
4、此种题:找技巧,后暴力枚举

思考:

本来是一道水题,但笔者太急于求成,总是想着怎样走捷径、找最优解法,却没有踏踏实实的想思路,写代码。因此耗费了很多时间.
静心思考后发现,笔者本末倒置了,拿到题首先要做的是将题做对,而后才可以交流经验,谋求更优化的解法。

算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)相关推荐

  1. 算法竞赛入门经典(第二版) | 习题3-5 谜题 (UVa227,Puzzle)(World Finals 1993)

    乍一看是一个大水题,但World Finals这两个词标示着老子世界决赛真题虽然题目很水但是数据就能卡死你.整整搞了五个小时,期间经历过崩溃(花了这么多时间搞一道大水题,还没AC),但好在坚持下来了, ...

  2. UVa1588 | 算法竞赛入门经典(第二版) 习题3-11 换低档装置

    样例输入 2112112112 2212112 12121212 21212121 2211221122 21212 样例输出 10 8 15 解题思路: 最开始设想了四种情况, A固定, B左移或右 ...

  3. 算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391

    题目:https://vjudge.net/problem/UVA-10391 思路:用vector存下单词,因为单词已按字典序排列于是复合词前半个单词一定在这个复合词之前,于是遍历寻找在首字母更变之 ...

  4. 算法竞赛入门经典第二版课后习题答案第二章

    算法竞赛入门经典第二版课后习题答案 第二章 习题2-1水仙花数 输出100-999中的所有水仙花数.若三位数ABC满足ABC=A^3+B^3+C^3,则称其为水仙花数.例如153=1^3+5^3+3^ ...

  5. UVA-12171 雕塑 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题目在<算法竞赛入门经典第二版>书中标注了星号,也是第一道出现星号的 ...

  6. 补学图论算法:算法竞赛入门经典(第二版)第十一章:

    补学图论算法:算法竞赛入门经典(第二版)第十一章: 倒排索引还没有实现! 下面是左神的图论算法,并查集笔记.和一个美团题目. ''' https://www.nowcoder.com/live/11? ...

  7. UVA-814 邮件传输代理的交互 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 #include<iostream> #include< ...

  8. UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...

  9. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)

    文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...

最新文章

  1. 测试结果分析_9种国内外纺织品耐摩擦色牢度测试方法结果分析
  2. 阻塞与非阻塞的IO网络读写
  3. Uipath 学习栏目基础教学:13、Uipath调用python代码
  4. IDEA 终于支持中文版和 JDK 直接下载了(太方便了)附新版介绍视频
  5. retryexec.java 94_解决feign调用接口不稳定的问题
  6. By Recognizing These Guys, We Find Social Networks Useful(HDU-3849)
  7. 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
  8. M0最高优先级的中断设计
  9. spdep | 最小生成树
  10. 【Swift 4.0】扩展 WCDB 支持 SQL 语句
  11. Python中函数的形参与按值传递之间的关系
  12. 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》定价修改...
  13. ThinkPHP5.1 子查询-使用 Group 获取每组最新数据
  14. Android连接大华条码秤区位码转换
  15. PLC十字路口交通灯设计
  16. 阿里年薪百万的P7架构师简历都长什么样?他们都是怎么学习的?
  17. 中间件是什么?通俗易懂的解释
  18. ZYNQ-7 PS的中断
  19. word怎么恢复默认样式
  20. Python3 将汉语转换为汉语拼音

热门文章

  1. 云网络丢包故障定位全景指南
  2. Spring Boot 2.0 迁移指南
  3. 深度解密Go语言之基于信号的抢占式调度
  4. LiveVideoStackCon 2021北京站 9月再次启航!
  5. 展望2018:WebRTC和下一代编解码器
  6. WebSocket使用案例
  7. Oceanus:基于Apache Flink的一站式实时计算平台
  8. 对象存储S3访问姿势
  9. 当执行进程ctrl+c关闭不了的时候的解决方法
  10. 大剑无锋之二分搜索、二分搜索时间复杂度、三分查找呢?