#43817: pythonTLE求救


hansjiang1017@gmail.com (hans_jiang)

學校 : 不指定學校
編號 : 278037
來源 : [111.242.122.117]
最後登入時間 :
2024-11-09 14:18:54
b557. 直角三角形 | From: [111.242.78.200] | 發表日期 : 2024-11-02 10:41

def sort(data):
    n = len(data)
    for i in range(0, n-1):
        for j in range(0, n-i-1):
            if data[j] > data[j+1]:
                temp = data[j]
                data[j] = data[j+1]
                data[j+1] = temp
    return(data)
T = int(input())
for _ in range(T):
    N = int(input())
    a_i = list(map(int, input().split()))
    if N < 3:
        print(0)
    else:
        a_i = sort(a_i)
        count = 0
        for i in range(N-2):
            for j in range(i+1,N-1):
                for k in range(j+1,N):
                    if (a_i[i]^2) + (a_i[j]^2) == a_i[k]^2:
                        count += 1
        print(count)

 
#43826: Re: pythonTLE求救


hansjiang1017@gmail.com (hans_jiang)

學校 : 不指定學校
編號 : 278037
來源 : [111.242.122.117]
最後登入時間 :
2024-11-09 14:18:54
b557. 直角三角形 | From: [111.242.78.200] | 發表日期 : 2024-11-03 13:18

T = int(input())
for _ in range(T):
    N = int(input())
    a_i = list(map(int, input().split()))
    if N < 3:
        print(0)
    else:
        a_i.sort()
        count = 0
        for i in range(N-2):
            for j in range(i+1,N-1):
                for k in range(j+1,N):
                    if (a_i[i]^2) + (a_i[j]^2) == a_i[k]^2:
                        count += 1
        print(count)



 
#44017: Re: pythonTLE求救


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 不指定學校
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2024-11-09 20:16:56
b557. 直角三角形 | From: [123.192.228.253] | 發表日期 : 2024-11-05 17:41

數字有可能是重複的,測資有可能是 3 3 3 4 4 4 5 5 5 這種形式

可以紀錄一下數字出現的頻率,然後直接用集合去重後再 sorted()

這樣就可以過了

 
ZeroJudge Forum