UVA——1587

UVa 1587 - Box 这道题思路明确了还是不难的,关键是判断方法。 首先正方体有三种不同的边,我们记为abc,并且记a>b>c,则长方体的六个面必定是ab、ab、ac、ac、bc、bc(按照边的长度排序),符合这种形式的就是一个正方体。 根据题目叙述,重点是怎样把输入的数据转化为这种标准形式,然后进行判断。 首先把每个面的两条边大小弄清楚,如ba转换为ab,即长>宽; 然后对六个面进行排序,按照长从大到小排序, 阅读详情

问题描述:


解决方案:

#include <iostream>
#include <cstdio>
bool isSame(int edge[6][2])
{
    int a,b;
    int same = 0;
    for(int i = 0; i < 2; i++)
        for(int j = 0; j < 2; j++){
            if(edge[0][i] == edge[1][j]){
                same = edge[0][i];
                break;
            }
        }
    if(same == 0)
        return false;
    a = edge[0][0];
    if(a == same)
        a = edge[0][1];
    b = edge[1][0];
    if(b == same)
        b = edge[1][1];
    if((a == edge[2][0] && b == edge[2][1]) || (a == edge[2][1] && b == edge[2][0]))
        return true;
    return false;
}
int main()
{
    int edge[6][2];
    int a,b;
    while(scanf("%d",&a) !=EOF){
        scanf("%d",&b);
        if(a > b){
            edge[0][0] = b;
            edge[0][1] = a;
        }else{
            edge[0][0] = a;
            edge[0][1] = b;
        }

        int index = 1;
        int count[6] = {0};
        for(int i = 1;i < 6;i++)
        {
            scanf("%d %d",&a,&b);
            if(a > b){
                int c = a;
                a = b;
                b = c;
            }
            int j;
            for(j = 0; j < index; j++)
                if(edge[j][0] == a && edge[j][1] == b)
                    break;
            if(j >= index)
            {
                edge[index][0] = a;
                edge[index][1] = b;
                index++;
            }else{
                count[j]++;
            }
        }
        bool flag = false;
        if(count[0] == 5 && edge[0][0] == edge[0][1]){
            flag = true;
        }
        for(int i = 0; i < 2; i++)
            if(count[i] == 3 && count[1 - i] == 1 && edge[1 - i][0] == edge[1 - i][1] && (edge[1 - i][0] == edge[i][0] || edge[1 - i][0] == edge[i][1]))
                flag = true;
        if((count[0] == 1 && count[1] == 1 && count[2] == 1 && index == 3 && isSame(edge))|| flag)
            printf("POSSIBLE\n");
        else
            printf("IMPOSSIBLE\n");
    }
    return 0;
}
//核心思路:暴力求解
UVA 1587 Box 思维 题意: 给出两条边长确认一个矩形,给出六个矩形,请问这六个矩形能不能组成一个长方体。 做法: 对于一个长方体,设其边长为a,b,c,令a<b<c,排序完成后,则有,ab,ab,ac,ac,bc,bc,即只有这样的数据才能构成长方体。 则可以这样考虑,声明一个结构体,含有宽(w)和高(h),对于输入的数据,若后项大于前项,则交换,排序后,首先寻找是否刚好有三组一样的矩形。如果有,... 阅读详情

相关推荐

题解:盒子(UVa 1587)

题目链接:https://vjudge.net/problem/UVA-1587 解题思路: 假设有长方体:a=1 b=2 c=3 ,我们将六个面的数据进行二重排序,即先一个面上两条边从小到大排序,然后按照第一个数字从小到大排序可以得到:ab ab ac ac bc bc,为了叙述方便,分别标号为a[0]-a[5];其中的两个数据分别表示a[i].x和a[i].y;经观察不难发现,如果要满足构成

nustart0720 751

UVa1587--Box--盒子(自认为代码很好理解)

题意就是判断6个面能否组成一个长方体 做这道题的时候,想着,老子一定要用自己的方法,如果AC了,我一定要发题解!真的太不容易了。 一个晚上的时间终于把这道题给AC了。 思路:一个长方体有长宽高,有六个面,2长宽、2长高、2宽高,如果我能把输入的数值的种类提取出来并记录这些数值,种类数>3则不能围成长方体。 接着遍历输入的每一行数值,如果输入的一行数值不是长宽、长高、宽高的一种,则说明不能...

一只蒻蒻的博客 426

算法竞赛入门经典(第二版) UVa原题 PDF版

算法竞赛入门经典(第二版)的习题都是UVa上的, 但是UVa太慢了太慢了太慢了太慢了太慢了, 于是我把各章习题的pdf一次性打包下载到本地, 和大家分享:)

UVA1587 盒子 Box 数学表达式解析(给你整的明明白白)

原理剖析 初看题目题主摸不着头脑,6个矩形的关系应该满足什么样的关系才能组成一个立方体?为了理清思路让我们画一个立方体观察(阅读过程中可随时跳到末尾代码处阅览以辅助理解): 得出事实: 立方体有3对对立面,对立面的形状一致; 三条邻接棱即可唯一描述一个立方体,如图所示标红的三条楞; 接下来按照以下步骤思考: 定义长边为hhh,短边为www,三对对立面分别为p1,p2,p3p_1,p_2,p_3p1​,p2​,p3​,他们各自的h,wh,wh,w应该带上相应的下标1,2,31,2,31,2,3例如p1

Seasoon_的博客 613

PPT+视频 | 详解智能营销增益模型(uplift model)

分享营销增益模型的原理和常见的建模及评估方法,并以淘票票智能票补为例介绍uplift model技术的实践经验。

阿里文娱技术 8626

高缺失率时空数据插补实战:从随机森林到扩散模型的性能对比

数据缺失是数据分析与机器学习建模中普遍面临的挑战,尤其在时空数据领域,传感器故障、传输中断等问题常导致数据不完整。数据插补技术旨在基于已知数据的模式和关联性,合理估算缺失值,为后续分析提供可靠基础。其核心原理在于利用数据的时空相关性(如时间周期性、空间邻近性)及与外部驱动因素(如交通、气象)的关联构建预测模型。这项技术的价值在于能将不完整的数据集转化为可用于高质量分析和预测的可用资产,广泛应用于环境监测、交通流量预测、金融风控等领域。本文聚焦于一个极具挑战性的场景——PM2.5监测数据缺失率高达82%,通过

weixin_30363285的博客 544

UVa1587

/* 这道题主要是练习一下结构体的使用,包括初始化和运算符重载 解题思路很简单,根据长方体六个面的结构特点,先把他们的长宽对进行排序 那么0和1,2和3,4和5都应该是相等的 然后判断他们的长度关系,0和2的宽应该是相等的,0和2的高分别是4的宽和高 */ #include #include #include #include #include #include #

我爱coding的专栏 1037

复旦微FMQL45T900平台RGMII网口调试实战:从PHY寄存器读取异常到链路建立

本文详细记录了复旦微FMQL45T900平台RGMII网口调试的全过程,重点解决了PHY寄存器读取异常问题。通过电压配置调整、时序优化和硬件信号完整性检查,最终成功建立网络链路。文章提供了实用的调试经验和解决方案,适合嵌入式开发人员参考。

weixin_29193359的博客 287

UVa1587--Box--盒子(代码超简洁)

题目链接https://vjudge.net/problem/UVA-1587 给定6个矩形的长和宽wi和hi(1≤wi,hi≤1000),判断它们能否构成长方体的6个面。 这道题不能想的太简单了,但是也不要想得太复杂。之前自己写的太复杂了,后来在网上看了一个答案,感觉写的非常好。 1、不要写成死循环。要能退出。 2、sort函数和swap函数都需要头文件支持 #include

话歪之地的博客 3020

准备生日礼物

摘要: 题目要求统计某月份需要准备的员工生日礼物数量。输入包括目标月份、员工姓名列表和对应的生日列表(格式为Year/Month/Day)。需处理重复员工(以最后一次录入为准),统计该月生日的员工人数。示例1中5月有3名员工生日,输出3;示例2中10月有6名,输出6。解题关键在于使用哈希表去重(以员工姓名为键),拆分生日字符串提取月份进行匹配。代码实现(C++/Java/Python)均遵循以下步骤:读取输入、哈希去重、解析月份并统计目标月份人数。时间复杂度为O(n),空间复杂度O(n)。

面试高手的博客 297

ADAMS软件二次开发:ADAMS软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件应用程序之间进行交互的接口。在ADAMS软件中,API提供了与软件内部功能直接交互的能力,使用户能够通过编写自定义代码来扩展软件的功能,实现自动化操作或集成到其他系统中。ADAMS软件的API主要基于C++和Python,允许用户通过这些编程语言来访问和控制ADAMS的模型、仿真和分析功能。API接口的使用,需要对编程语言有一定的了解,同时也需要熟悉ADAMS软件的基本操作和模型结构。

kkchenjj的博客 1861

C++ 控制台实现产生抽奖随机数

闲来无事,学到了Rand函数的用法,于是想到实现一个控制台抽奖的程序 程序功能比较简单,输入一个数值作为随机数的范围,为[1,range],通过不断按回车产生随机数,停止回车时固定。通过system(“cls”)实现清除之前的数据。输入任意其他字符+回车可以更换随机数范围。Ctrl+Z可停止程序运行。 #include <iostream> #include &lt...

weixin_30265171的博客 455

本地Pycharm连接远程服务器详细配置过程(直接在本地使用服务器显卡,很棒)

相信很多人都遇见过这种情况:实验室成员使用同一台服务器,每个人拥有自己的独立账号,我们可以使用服务器更好的配置完成实验,毕竟自己哪有money拥有自己的3090呢。

NorthSmile的博客 4万+

Box UVA - 1587

题目链接:https://vjudge.net/problem/UVA-1587 认真想一想可以想出来这道题的规律: 一共就三种情况: 1.正方体,长宽高一样 2:长宽高中有两个相等,十二个数中一共出现两个数,这里要仔细想想图形,最好画图,可以发现一个数必须出现4次,另一个8次,而且,六个面中有两个正方形 例: 2 1 2 1 2 1 2 1 1 1 1 1 输出POSSIBLE 1 1 1 ...

qq_43185391的博客 325

YOLOv11 改进 - 检测头 | Detect_LSCD轻量共享卷积检测头:轻量化设计破解计算瓶颈,增强复杂场景目标感知能力

本文介绍了基于群归一化(GroupNorm)和共享卷积的轻量化检测头LSCD,并将其集成进YOLOv11。LSCD检测头充分利用了GroupNorm和共享卷积的优势,在保持特征信息有效融合的同时,减少计算量和运算复杂度。我们将LSCD的代码集成到YOLOv11检测头中,并在tasks文件中进行注册。实验证明,YOLOv11-LSCD在目标检测任务中取得了良好的效果。

魔改工程师的博客 2385

openHarmony之AI Engine:万字讲解如何在应用、开发板上接入AI大模型调用

本文章介绍如何在 OpenHarmony 开发板上集成和部署各类 AI 大模型,实现终端直接聊天功能,并为语音助手、智能机器人等应用提供 AI 接口支持。

m0_67505153的博客 619

UVa1587 Box(盒子)

思路:首先对输入的每个矩形的长和宽按长>宽,在按先长后宽对输入的矩形再矩形排序即可。 #include <bits/stdc++.h> #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace...

熊熊的博客 368

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UVA 1587 Box

UVA-1587题目大意: 输入长方体的长宽,能否构成长方体。 解题思路: 先排序,判断是否有三对完全相同的面,并且能够连接在一起,即不相同的两个面中有一边要相等。#include <stdio.h> #include <string.h> int a[6][2]; void swap(int &a, int &b) { int temp; temp = a;

Dreamy_LIN的博客 410

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Uva 1587:Box

题目传送门:https://cn.vjudge.net/problem/UVA-1587#include <stdio.h>struct p { int w, h; }ps[6], cps[3];bool isSame(int i, int j) { return (ps[i].w == ps[j].w && ps[i].h == ps[j].h) || (ps[i]

请叫我AXin 1451

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

0005 UVA1587 Box

UVA1587 Box

算法竞赛入门,越专注,越成功。 161

UVa1587-Box

UVa1587-Box思路:判断条件略多,要想能拼成长方体六个面要满足一下几点儿 六个面中要有相同的三组对立面 假设面ABC的边分别是X,Y(X<=Y),则三组对立面满足 A.x==B.x A.y==C.y B.y==C.x 这样就是可以拼成盒子的条件,处理一下数据排序,if比较即可代码:#include <bits/stdc++.h>using namespace std; pair<int,i

进击的ACMer!!! 563

【UVA】 1587 --- Box

【UVA】 1587 --- Box Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks up wooden boxes of different sizes to pack machinery for delivery to the customers. Each box i...

来日浅谈的博客 580

UVa1587 - Box

//UVa1587 - Box //题目:给出6个矩形的长和宽,判断它们能否构成长方体的六个面 //12/3=4 个相同的面 #include #include int main(){ int n, s[4],a=0; memset(s,0,sizeof(s)); for(int i =0;i <12; i++){ scanf("%d",&n); if(n>1000||n<1){pr

小哈里的博客 665

UVA 1587-Box

UVA 1587-Box题目大意: 给出六个面的长和宽,判断是否能构成长方体解题思路: 先将每个面长宽排序,再对6个面排序,按照长从大到小,如果长相同,则去宽从大到小 #include <stdio.h> #include <iostream> using namespace std; int main() { int a[6][2]; int i, t, m, j; whi

ZeroLH00的博客 464

UVA - 1587 ​​​​​​​Box

Box  UVA - 1587  题目传送门 解决方法:按照边在12个长宽出现的次数和出现在几个矩形里来判定就行了 总共出现一个长度,满足条件 总共出现两个长度,则其中一个长度在12个数里出现4次,并在四个矩形中出现 总共出现三个长度,则必须每个长度都出现4次,并在四个矩形中出现 AC代码: #include &lt;cstdio&gt; #include &lt;iostream&g...

C++的星空 235
上一篇: UVA——10340
下一篇: UVA——1588
瓜皮小白
博客等级 码龄11年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值