蓝桥杯 矩形拼接

题目位置
让我想起了2019四川省赛的一道题。
如果三个矩形中有两个矩形各有一条边相等,则至少6条边;若3个矩形都有一条边相等,则至少4条边。
如果有一个矩形的一条边是另外两个矩形的某条边之和,则至少6条边;若再次基础上,另外两个矩形的另外一条边相等,则至少4条边
用全排列+循环,反正枚举所有边的情况

from itertools import permutations

def main():
    n = int(input())
    for t in range(n):
        a = [[0 for i in range(2)] for j in range(3)]
        line = input().split()
        for i in range(3):
            a[i][0], a[i][1] = int(line[i * 2]), int(line[i * 2 + 1])
        p = permutations(a)
        flag4, flag6 = False, False
        for a in p:
            for i1 in range(2):
                a[0][0], a[0][1] = a[0][1], a[0][0]
                for i2 in range(2):
                    a[1][0], a[1][1] = a[1][1], a[1][0]
                    for i3 in range(2):
                        a[2][0], a[2][1] = a[2][1], a[2][0]
                        if a[0][0] == a[1][0]:
                            flag6 = True
                            if a[0][0] == a[2][0]:
                                flag4 = True
                        if a[0][0] == a[1][0] + a[2][0]:
                            if a[1][1] == a[2][1]:
                                flag4 = True
                            else:
                                flag6 = True
        if flag4:
            print(4)
        elif flag6:
            print(6)
        else:
            print(8)



if __name__ == '__main__':
    main()
posted @ 2023-12-13 20:54  BakaCirno  阅读(18)  评论(0编辑  收藏  举报