【华为OD机试2023】最多直角三角形个数 C++
最多直角三角形个数
题目描述
有N条线段,长度分别为a[1]-a[n])。现要求你计算这N条线段最多可以组合成几个直角三角形,每条线段只能使用一次,每个三角形包含三条线段。
输入描述
第一行输入一个正整数工(1<=T<= 100),表示有T组测试数据。
对于每组测试数据,接下来有T行,每行第一个正整数N,表示线段个数,(3<=N<20),接着是N个正整数,表赤每条线段长度,(0<a[i]<100) .
输出描述
对于每组测试数据输出一行,每行包括一个整数,表示最多能组合的直角三角形个数。
示例
示例1
input1:
1
7 3 4 5 6 5 12 13
outpu1:
2
input2:
1 7 3 4 5 6 6 12 13
input3:
1
思路
使用dfs找出所有的组合,之后对于每一种组合求解即可,在求解的同时维护最大数量,最后输出即可,由于是T组数据,我们应当在每次开始时初始化path和ans
代码
#
