题目:https://vjudge.net/problem/UVA-1587

题意:给出6个矩形的长和宽,均小于10000,判断是否可组成一个长方体,可以的话,”输出 POSSIBLE“。否则输出“IMPOSSIBLE”

解法:把6个面排序,先按宽度从小到大排,再把宽度相等的面按长度从小到大排。经上述方式排序后,要构成长方体,首先保证第1、2面,第3 、4面,第5、6面分别相同,而且,第2、 3面的宽必须相等(上面已保证1和2,3和4面分别相同),第2面的长等于第5面的宽,第四、五面的长必须相等。

要保证每个面的长大于宽,否则上述排序没用,也就得不到正解。

#include <stdio.h>
#include <string.h>
#include<algorithm>
using namespace std;
struct uct
{int w,h;//w 表示宽,h表示长
};
uct a[6];int w;
int cmp(uct n1,uct n2)
{if(n1.w==n2.w)return n1.h<n2.h;return n1.w<n2.w;
}
int pd()
{if(a[0].h != a[1].h || a[0].w != a[1].w) return 0;if(a[2].h != a[3].h || a[2].w != a[3].w) return 0;if(a[4].h != a[5].h || a[4].w != a[5].w) return 0;if(a[1].w != a[2].w) return 0;if(a[1].h != a[4].w) return 0;if(a[3].h != a[4].h) return 0;return 1;}
int main()
{while(scanf("%d%d",&a[0].w,&a[0].h)!=EOF){for(int i= 1 ; i<6; i++){scanf("%d%d",&a[i].w,&a[i].h);if(a[i].w>a[i].h)swap(a[i].w,a[i].h);}int i=0 ;if(a[i].w>a[i].h)swap(a[i].w,a[i].h);sort(a,a+6,cmp);/* for(int i=0 ;i<6 ;i++){printf("%d %d\n",a[i].w,a[i].h);}
*/if(!pd())printf("IM");puts("POSSIBLE");}return 0;
}

UVa 1587 Box相关推荐

  1. UVA - 1587 ​​​​​​​Box

    Box UVA - 1587 题目传送门 解决方法:按照边在12个长宽出现的次数和出现在几个矩形里来判定就行了 总共出现一个长度,满足条件 总共出现两个长度,则其中一个长度在12个数里出现4次,并在四 ...

  2. uva 1587(Box UVA - 1587)

    题目大意是给定6个数对,每个数对代表一个面的长和宽,判断这6个面是否能构成一个长方体. 这种题一看很复杂,但是只要不想多了实际上这就是一个水题... 首先说明一下判断的思路: 1.长方体是有三个对面的 ...

  3. UVA - 1587 Box

    /*起初自己的思路是没有这么简洁清晰的,后来做完以后,想要去搜下别人是怎么做的,搜到了这篇bloghttp://blog.csdn.net/kun768/article/details/4370189 ...

  4. uva 1587 盒子

    原题链接   https://vjudge.net/contest/473857#problem/P 本题思路,用结构体   首先确定长宽高三者,其次确定存在两组相同长.两组相同宽.两组相同高,然后将 ...

  5. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  6. 7.25第一次组队赛

    Problem A UVA 11877 The Coco-Cola Store 直接输出n/2 1 #include <stdio.h> 2 int main() 3 { 4 int n; ...

  7. UVA 2474 - Balloons in a Box 爆搜

    2474 - Balloons in a Box 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&a ...

  8. 1597 BOX (UVA)

    目录 思路: 代码实现: 学习到的东西: 思路: 6 个矩形能够拼成一个长方体,则它的边的长度可能有三种: 有 3 种边长:一般的长方体 有 2 种边长:底面为正方形的长方体 有 1 种边长:正方体 ...

  9. UVa 103 - Stacking Boxes(dp求解)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

最新文章

  1. sql mysql 删除数据库_在sql中将已建数据库删除的详细步骤
  2. 王高利:TCP Wrappers访问控制(hosts.allow,hosts.deny)
  3. Android Unable to resolve target 'android-8'
  4. Python-爬虫-requests
  5. 中国电信天翼云进入4.0阶段,打造一朵无处不在的分布式云
  6. There is no getter for property named 'XXX' in class 'aaa.bbb.ccc'(终极骚操作的解决方法)...
  7. pinfinder开源下载_BayesianNetworktool
  8. Android 自定义UI--指南针
  9. 推箱子视频教学Java,推箱子游戏教学视频
  10. 【硬件】AD制作集成库IntLib
  11. Java程序员:java软件工程师中级证
  12. 换个安逸点儿的英文名,希望以后事业顺遂!
  13. c语言单循环赛制,循环赛日程安排问题(分治法)
  14. webstrom无法格式化局部html,格式化代码失效webstorm
  15. 展开操作符:一家人就这么被拆散了
  16. 西门子行贿门情报列表,我自己写的一个小软件自动搜集到的。
  17. linux编写多时区时间显示程序,Linux系统时区时间修改
  18. 互联网信息服务ICP业务许可证(仅限互联网信息服务)是什么许可证?
  19. 江城子·己亥年戊辰月丁丑日话凄凉
  20. java截取视频空间的中间段

热门文章

  1. 数据分析神器:数据自动录入并生成BI报表
  2. 启动egg项目时报错ERROR 11104 nodejs AgentWorkerDiedError [master] agent_worker#1:9544 died (code : 1, signa
  3. nas+虚拟服务器,什么是NAS虚拟化
  4. KiCad使用笔记(06)-PCB生产及SMT打样文件导出
  5. 杭州烟花爆炸烧伤多人 百人皮肤灼伤衣服破损-杭州-烟花-爆炸
  6. 核磁共振、顺磁共振、磁共振成像......你想要的都在这里
  7. python画地图轨迹图_如何使用python在单张地图上绘制轨迹?
  8. UCB CS61A 学习笔记(持续更新一起学习ing)
  9. 老旧电脑不用升级硬件也能运行lumion啦
  10. 蓝桥杯模块之NE555