欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 蓝桥杯 矩形拼接 10分题

蓝桥杯 矩形拼接 10分题

2025/3/19 14:26:29 来源:https://blog.csdn.net/weixin_43851264/article/details/146352598  浏览:    关键词:蓝桥杯 矩形拼接 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 1if i == k and a + b - i + e + f - k == j:return 1if j == k and c + d - j + e + f - k == i:return 1return 0def 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 1return 0T = 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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词