UVa 1587 Box
2015-03-01 20:32
176 查看
题意:给出6个矩形的长和宽,问是否能够构成一个长方体
先假设一个例子
2 3
3 4
2 3
3 4
4 2
4 2
排序后
2 3
2 3
3 4
3 4
4 2
4 2
如果要构成一个长方体的话,有3对面是一样的 先判断这个成立了,再判断能否构成长方体 假设现在剩下的面就为
2 3 (第一个面)
3 4 (第二个面)
4 2 (第三个面)
发现是首尾相接的,即为只需要判断三次,第一个面的长或者宽或者两者都在第二个面出现,第一个面的长或者宽或者两者都在第三个面出现,第二个面的长或者宽或者两者都在第三个面出现,如果三个条件都满足的话,就构成了
View Code
不过后来又想到一个反例= =正想着改的时候---居然 过了= = 反例是
12 34
34 12
12 34
34 12
12 34
12 34
这应该不能构成吧--可是程序输出的是能 ----不懂= =
先假设一个例子
2 3
3 4
2 3
3 4
4 2
4 2
排序后
2 3
2 3
3 4
3 4
4 2
4 2
如果要构成一个长方体的话,有3对面是一样的 先判断这个成立了,再判断能否构成长方体 假设现在剩下的面就为
2 3 (第一个面)
3 4 (第二个面)
4 2 (第三个面)
发现是首尾相接的,即为只需要判断三次,第一个面的长或者宽或者两者都在第二个面出现,第一个面的长或者宽或者两者都在第三个面出现,第二个面的长或者宽或者两者都在第三个面出现,如果三个条件都满足的话,就构成了
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node { int x,y; } a[10]; int cmp(node n1,node n2) { if(n1.x!=n2.x) return n1.x<n2.x; else return n1.y<n2.y; } int main() { int i,j,ans; while(scanf("%d",&a[1].x)!=EOF) { scanf("%d",&a[1].y); for(i=2;i<=6;i++) scanf("%d %d",&a[i].x,&a[i].y); for(i=1;i<=6;i++) { if(a[i].x>a[i].y) swap(a[i].x,a[i].y); } sort(a+1,a+6+1,cmp); // for(i=1;i<=6;i++) // printf("%d %d\n",a[i].x,a[i].y); ans=0; int flag=1; if(a[1].x==a[2].x&&a[1].y==a[2].y&&a[3].x==a[4].x&&a[3].y==a[4].y&&a[5].x==a[6].x&&a[5].y==a[6].y) { if(a[1].x==a[3].x||a[1].x==a[3].y||a[1].y==a[3].x||a[1].y==a[3].y) ans++; if(a[1].x==a[5].x||a[1].x==a[5].y||a[1].y==a[5].x||a[1].y==a[5].y) ans++; if(a[3].x==a[5].x||a[3].x==a[5].y||a[3].y==a[5].x||a[3].y==a[5].y) ans++; if(ans<3) flag=0; } else flag=0; if(flag) printf("POSSIBLE\n"); else printf("IMPOSSIBLE\n"); } return 0; }
View Code
不过后来又想到一个反例= =正想着改的时候---居然 过了= = 反例是
12 34
34 12
12 34
34 12
12 34
12 34
这应该不能构成吧--可是程序输出的是能 ----不懂= =
相关文章推荐
- uva 1587 Box
- UVA - 1587 Box
- UVa 1587 - Box
- UVa 1587 Box(暴力)
- UVA - 1587 Box
- UVa1587--Box--盒子(代码超简洁)
- UVa1587-Box
- UVa 1587 - Box【水题】
- UVa1587-Box
- UVa 1587 - Box
- uva-1587-Box
- UVA-1587 Box
- UVa 1587 - Box
- 【习题 3-10 UVA - 1587】Box
- 算法竞赛入门经典(紫书)第三章——Box UVA-1587
- UVA 1587-Box
- UVa 1587 - Box
- UVa-1587 - Box
- uva1587 - Box
- UVa-1587 - Box