POJ 2160 BOX
来源:互联网 发布:程序员能做到多少岁 编辑:程序博客网 时间:2024/05/16 04:43
题意:给出六个矩形的长与宽,判定这六个矩形是否可以组成一个长方体。
思路:先假设可以组成长方体,共有三种情况:
情况一:
该长方体的长、宽、高各不相等,从第一个矩形输入的两条边(先左后右)开始扫描(逐个矩形扫描,先和输入的六个矩形左侧的边比较,若相等,则频数自增;若不相等,和该输入矩形右侧的边比较,若相等,则频数自增),每条边的出现频数为4,共有12个4出现;
情况二:
该长方体的长、宽、高中,有两种边是相等的(即,长==宽or长==高or宽==高),按照情况一的方法扫描,共有8个6,4个4出现;
情况三:
该长方体为一个正方体,即长==宽==高,按照情况一的方法扫描,每条边的出现频数为6,共有12个6出现。
代码:
#include
usingnamespacestd;
intmain()
{
int w[6],h[6],count1[6]={0},count2[6]={0},n1=0,n2=0;
for(int i=0;i<</span>6;i++)
cin>>w[i]>>h[i];
for(int i=0;i<</span>6;i++) //记录输入矩形的每条边出现频数
{
for(int j=0;j<</span>6;j++)
{
if(w[i]==w[j])count1[i]++;
elseif(w[i]!=w[j])
if(w[i]==h[j])count1[i]++;
if(h[i]==h[j])count2[i]++;
elseif(h[i]!=h[j])
if(h[i]==w[j])count2[i]++;
}
}
for(int i=0;i<</span>6;i++) //记录不同频数的个数
{
if(count1[i]==6)n1++;
elseif(count1[i]==4)n2++;
if(count2[i]==6)n1++;
elseif(count2[i]==4)n2++;
}
if(n1==12||n2==12||n1==8&&n2==4)cout<<"POSSIBLE"<<endl;
elsecout<<"IMPOSSIBLE"<<endl;
return0;
}
usingnamespacestd;
intmain()
{
}
- POJ 2160 BOX
- poj 1442 Black Box
- poj 1442 Black Box
- Box of Bricks
- poj 2488
- POJ 2485 Highways
- POJ 3299
- poj 1905
- HDU 2088 Box of Bricks
- HDU 1326 Box of Bricks
- CSS3 box-shadow Property
- LIST BOX 联动的实现
- check box 控制显示
- POJ 2247 Humble Numbers
- POJ 1753 Flip Game
- POJ 1182 食物链
- POJ 3185 The Water Bowls
- POj 2379 ACM Rank Table
- POJ 2101
- POJ 2105
- POJ 2109
- POJ 2116
- POJ 2136
- POJ 2160 BOX
- POJ 2190 ISBN
- HDU 4278
- C++左移右移操作符研究
- C++的类型转换符:static_cast、dy…
- 虚妄的奇迹,血泪的现实——记Fate&n…
- 统计页码数字问题
- HDU 2050 折线分割平面
- 宏定义应用