UVa1587--Box--盒子(代码超简洁)
来源:互联网 发布:在线网络理财投资服务 编辑:程序博客网 时间:2024/05/21 17:26
题目链接https://vjudge.net/problem/UVA-1587
给定6个矩形的长和宽wi和hi(1≤wi,hi≤1000),判断它们能否构成长方体的6个面。
这道题不能想的太简单了,但是也不要想得太复杂。之前自己写的太复杂了,后来在网上看了一个答案,感觉写的非常好。
1、不要写成死循环。要能退出。
2、sort函数和swap函数都需要头文件支持
#include<algorithm>using namespace std;swap(box[i].first,box[i].second);//可以交换各类型数据,字符串等sort(box,box+6);//对数组、结构体等进行排序
3、swap函数
直接交换数字:
int a=2,b=3;swap(a,b);printf("%d %d\n",a,b);
交换字符串:
char *a="hello",*b="world";swap(a,b);printf("%s %s\n",a,b);
关于自定义swap函数:更多自定义swap点击这里http://blog.chinaunix.net/uid-20769502-id-3436523.html
#include<stdio.h>myswap(int *a,int *b){ //注意② int c; //注意③ c=*a; *a=*b; *b=c;}int main(){ int a,b; scanf("%d%d",&a,&b); myswap(&a,&b); //注意① printf("%d %d",a,b);}
去重排序:
sort(box,box+6);new_len=sort(box,box+6)-box;
自定义排序规则:
typedef struct { int x; int y;}mybox;int cmp(mybox a,mybox b){ if(a.x!=b.x) return a.x<b.x; else return a.y<b.y;}sort(box,box+6,cmp);
下面是这一题的代码:
#include<stdio.h>#include<algorithm>using namespace std;pair <int,int> box[6];//注意书写方式int i;int main(){ while(1){ for(i=0;i<6;i++){ if(scanf("%d%d",&box[i].first,&box[i].second)!=2) return 0; if(box[i].first>box[i].second) swap(box[i].first,box[i].second); } sort(box,box+6);//我试了一下,此处排序是按照先first递增,其次second递增排序 puts(box[0].first==box[1].first&&box[1].first==box[2].first&&box[2].first==box[3].first&& box[0].second==box[1].second&&box[1].second==box[4].first&&box[4].first==box[5].first&& box[2].second==box[3].second&&box[3].second==box[4].second&&box[4].second==box[5].second? "POSSIBLE":"IMPOSSIBLE"); }}
阅读全文
1 0
- UVa1587--Box--盒子(代码超简洁)
- 盒子Box UVA1587
- 算法竞赛入门经典(第2版)习题3-10 盒子 Box UVa1587
- 习题3-10 盒子(Box, ACM/ICPC NEERC 2004, UVa1587)
- UVa1587 盒子
- UVa1587 盒子
- UVa1587 盒子
- UVa1587 盒子
- UVa1587 盒子
- Uva1587 - Box
- uva1587 - Box
- UVa1587-Box
- [UVA1587]BOX
- uva1587 - Box
- UVa1587 - Box
- UVa1587-Box
- 《算法竞赛入门经典2ndEdition 》习题3-10 盒子(Box, Uva1587)
- uva1587——box
- 可编辑子项的list control控件
- 小型三维引擎设计实现-app层如何跨平台2
- webstorm,Vim常用快捷键
- css选择器整理
- 使用redis中遇到的问题记录
- UVa1587--Box--盒子(代码超简洁)
- LINUX设备驱动模型之PLATFORM(平台)总线详解
- ORA-00922: 选项缺失或无效
- 2017.7.17
- 微信小程序 java服务端记(附部署过程)
- python 报错 ImportError: No module named model_selection 的解决办法
- Java学习之Iterator(迭代器)的一般用法 (转)
- BZOJ 1191 [HNOI2006]超级英雄Hero 二分图匹配
- MySQL数据库的一些操作,修改设置密码等