# 情况2:完全匹配条件:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边相等defcheck1(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:returnTrue#两个短边位置可以确定在23中一个,45中一个,if x2>=x1 and x2>=x3:#当x2是最大的边时if x2==x1+x3 and a[0]+a[1]-x1==a[4]+a[5]-x3:returnTrue#比较两个短边的另一条边:把两个短边加起来减去已知的剩下的就是另一条边if x3>=x1 and x3>=x2:#当x3是最大的边时if x3==x1+x2 and a[0]+a[1]-x1==a[2]+a[3]-x2:returnTruereturnFalse#情况3defcheck2( x1,x2,x3): # 部分匹配:六边形if x1>=x2 and x1>=x3:
if x1==x2+x3:returnTrue# 这里不需要判断前两个矩形另一边不相等,因为check1()函数已经选出了相等的,所以剩下的都是不相等的if x2>=x1 and x2>=x3:
if x2==x1+x3:returnTrueif x3>=x1 and x3>=x2:
if x3==x1+x2:
returnTruereturnFalse
T = int( input()) # 读取T组测试for t inrange(T):
a=list(map(int,input().split())) # 读取三个矩形的长和宽
ans=8# 最大的边数(最差的结果)for i inrange(0,2): # 取第1个矩阵的边for j inrange( 2,4): # 取第2个矩阵的边for k inrange(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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人