当前位置: 首页 > article >正文

蓝桥杯 矩形拼接 10分题

题目

链接

分析

真是疯了
一个10分的题我毫无头绪
原来用的是暴力手段+找规律
这题矩阵总共只有3个,而且每个矩阵只有长和宽两个数据,外加这题的时间限制为1s,种种迹象表明这题是可以直接暴力的
三个矩阵总共只可能摆出3种不同的结果,4,6和8
4比较好说,两种情况(见代码)
如果不是4,那就看是不是6,也有两种情况(见代码)
最后就全是8

这题的关键写点在于这种计算剩余矩形两边和的办法非常地巧妙
以及三个for循环表示了所有比较的可能,这个逻辑要理清

但是为什么轮训检测超时啊我说/o(╥﹏╥)o

代码

def cnt4():
    for i in [a, b]:
        for j in [c, d]:
            for k in [e, f]:
                # 三个矩形有一条边是一样长的
                if i == j == k:
                    return 1
                # 两个矩形有一条是一样长的,且这两个矩形的另外一条边的和等于第三矩形中的一条边
                if i == j and a + b - i + c + d - j == k:
                    return 1
                if i == k and a + b - i + e + f - k == j:
                    return 1
                if j == k and c + d - j + e + f - k == i:
                    return 1
    return 0


def cnt6():
    for i in [a, b]:
        for j in [c, d]:
            for k in [e, f]:
                # 两个矩形一条边相等(此时已经排除了4的情况)
                if i == j or i == k or j == k:
                    return 1
                # 两个矩形的两条边和正好等于第三条边
                if i + j == k or i + k == j or j + k == i:
                    return 1
    return 0


T = int(input())
for t in range(T):
    a, b, c, d, e, f = map(int, input().split())
    if cnt4():
        print(4)
    elif cnt6():
        print(6)
    else:
        print(8)


http://www.kler.cn/a/590754.html

相关文章:

  • R语言——变量
  • ESP32中的内存架构
  • 【TVM教程】使用自定义调度规则(Sketch Rule)在 CPU 上自动调度稀疏矩阵乘法
  • 基于gitea的本地仓库创建
  • 总结 kotlin中的关键字和常用方法
  • 计算机操作系统(6) (经典进程同步问题)
  • 工厂能耗系统完整解决方案 ——安科瑞企业能源管控平台
  • 穆迪暖色调人像静物摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • PSI5接口
  • Web3游戏行业报告
  • 手写发布订阅模式
  • 大数据分析方法(65页PPT)
  • mac npm run dev报错 error:0308010C:digital envelope routines::unsupported
  • Java 多线程编程简介
  • 05 MP4解码AAC + 格式知识
  • python基础8 单元测试
  • 蓝桥杯备赛-贪心-管道
  • MySQL 进阶学习笔记(包括MySQL的存储引擎、索引、SQL优化、视图、存储过程、触发器、锁InnoDB引擎和MySQL管理)的相关内容详细版
  • 使用vue3+el-form实现动态新增名称,值,并对名称进行必填校验
  • npm 报错 unable to resolve dependency tree