首页 > 其他分享 >蓝桥杯2022年第十三届省赛真题-矩形拼接

蓝桥杯2022年第十三届省赛真题-矩形拼接

时间:2024-02-26 17:24:21浏览次数:24  
标签:矩形 return 真题 蓝桥 2022 ans x2 x3 x1

目录

题目

分析

  • 情况1:三个矩形有一边相等。(完全匹配:4边)

  • 情况2:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边相等。(完全匹配:4边)

  • 情况3:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边不相等。(部分匹配:6边)

  • 情况4:如果有两个矩阵有一条边相等,那么合并后就是6条边

  • 情况5:3个矩形完全不能匹配:8边形

代码

# 情况2:完全匹配条件:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边相等
def check1(x1,x2,x3):           # 完全匹配:四边形
    if x1>=x2 and x1>=x3:#当x1是最大的边时,后续判断两个短的边加起来是否等于长边,并且判断两个小矩形的另一条边相等
        if x1==x2+x3 and a[2]+a[3]-x2==a[4]+a[5]-x3:return True#两个短边位置可以确定在23中一个,45中一个,
    if x2>=x1 and x2>=x3:#当x2是最大的边时
        if x2==x1+x3 and a[0]+a[1]-x1==a[4]+a[5]-x3:return True#比较两个短边的另一条边:把两个短边加起来减去已知的剩下的就是另一条边
    if x3>=x1 and x3>=x2:#当x3是最大的边时
        if x3==x1+x2 and a[0]+a[1]-x1==a[2]+a[3]-x2:return True
    return False
#情况3
def check2( x1,x2,x3):          # 部分匹配:六边形
    if x1>=x2 and x1>=x3:
        if x1==x2+x3:return True # 这里不需要判断前两个矩形另一边不相等,因为check1()函数已经选出了相等的,所以剩下的都是不相等的
    if x2>=x1 and x2>=x3:
        if x2==x1+x3:return True
    if x3>=x1 and x3>=x2:
        if x3==x1+x2:
            return True
    return False
T = int( input())                     # 读取T组测试
for t in range(T):
    a=list(map(int,input().split()))  # 读取三个矩形的长和宽
    ans=8                          # 最大的边数(最差的结果)
    for i in range(0,2):           # 取第1个矩阵的边
        for j in range( 2,4):      # 取第2个矩阵的边
            for k in range(4,6):   # 取第3个矩阵的边
                x1,x2,x3 = a[i],a[j],a[k]       # x1,x2,x3是三个矩形的一边,6种组合
                if x1==x2 and x2==x3:   # 情况1:三个矩形有一边相等
                    ans = min(ans,4)
                if check1(x1,x2,x3):#情况2:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边相等
                    ans = min(ans,4)
                if x1==x2 or x1==x3 or x2==x3:#情况4:如果有两个矩阵有一条边相等,那么合并后就是6条边
                    ans = min(ans,6)
                if check2(x1,x2,x3):#情况3:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边不相等
                    ans = min(ans,6)
    print(ans)

标签:矩形,return,真题,蓝桥,2022,ans,x2,x3,x1
From: https://www.cnblogs.com/lushuang55/p/18034779

相关文章

  • 2023蓝桥杯省赛B组真题及解析
    2023蓝桥杯省赛B组真题及解析7.子串简写算法:前缀和https://www.lanqiao.cn/problems/3514/learning/?subject_code=1&group_code=4&match_num=14&match_flow=1&origin=cup#include<bits/stdc++.h>using namespace std;int main(){    int K;    cin>>K; ......
  • P8668 [蓝桥杯 2018 省 B] 螺旋折线
    以第四象限的形如(x,-x)的点(它的距离最好算)为基准,来推附近的点的距离。不用怕坐标轴上的点的从属划分问题,例如在A区域和B区域交线上的点,那么它就应该是既满足A区域算法,又满足B区域算法的。#include<bits/stdc++.h>usingnamespacestd;longlongx,y,n,d;intmain(){......
  • 【C++】【OpenCV】Visual Studio 2022 配置OpenCV
    记录一下VisualStudio配置OpenCV过程以及出现的问题本机环境:1、Windows102、VisualStudio2022 配置步骤:1、下载OpenCV(Releases·opencv/opencv·GitHub)在GitHub上下载最新的版本 2、双击打开,然后选择路径后,点击Extract 3、等待提取完成后在VisualStudio中新......
  • 李宏毅2022机器学习HW3 Image Classification
    Homework3数据集下载在本地环境下进行实验总是令人安心,但是又苦于网上找不到数据集,虽然kaggle上有数据集但是下载存在问题于是有了一个天才的想法,间接从kaggle上下载(利用output文件夹中的文件是可下载这一机制将数据集从input文件夹拷贝到output文件夹),具体操作如下图等待数......
  • Visual Studio 2022 .Net 8 启用AOT publish enabled 发布失败
    .Net8NativeAOT的优势: 我使用VisualStudio2022创建了一个面向.NET8的控制台应用程序。我在创建项目时选中了启用本机AOT发布选项。它给出了以下错误: 错误文本:发布遇到错误。发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。诊断......
  • [ZJOI2022] 树
    [ZJOI2022]树一些经典的dp手法。考虑这个题目在讲什么,每个点都要朝左右两边连各一条有向边,限制是一个点要么左边没有入边要么右边没有入边,但不能两边同时没有入边。发现没法转化,考虑硬做。设\(f_{i,j,k,l}\)表示考虑前\(i\)个点,有\(j\)条向右的有向边终点待定,有\(......
  • P8329 [ZJOI2022] 树
    直接求是困难的,所以考虑容斥将所求容斥为两部分:每个结点至少在一棵树上为叶子的方案数-至少有一个结点在两棵树上都为叶子的方案数。考虑DP,设\(f_i(x,y)\)表示\([1,i]\)中是第一棵树的非叶子的结点数为\(x\),\([i+1,n]\)中是第二棵树的非叶子的结点数为\(y\)时的......
  • visual studio 2022 的git提交大文件的方法
     我用visualstudio2022的git提交代码后推送,出现一个大文件无法推送怎么办? 可以直接用命令推送 项目文件夹右键,选择gitbashhere。   ......
  • ChemDraw Pro 2022:呈现专业化学绘图的极 致之作 mac/win版
    PerkinElmerChemDrawPro2022是一款功能强大的化学绘图软件,专为化学家、科研工作者和教育者设计。这款软件凭借其卓越的性能和丰富的功能,已经成为化学绘图领域的领导者。→→↓↓载PerkinElmerChemDrawPro2022mac/win版 ChemDrawPro2022提供了广泛的化学符号和工具,使......
  • 基于OpenVINO 2022.1 C++ API部署YOLOv7预训练模型
    任务背景作为视觉应用中最常见的任务之一,目标检测一直是各类新模型刷榜的必争之地,其中就以YOLO系列的网络结构最为突出。YOLO的全称是youonlylookonce,指只通过one-stage的方式需要“浏览一次”就可以识别出图中的物体的类别和位置。近期YOLO官方团队又放出新版本——YOLOv7,速......