双回溯
题目解析
本题并不是简单的全组合求解,比如我们看用例:
1
7 3 4 5 6 5 12 13
如果单纯以全组合角度来求解组成直角三角形的线段的话,有如下情况:
- 3 4 5
- 3 4 5
- 5 12 13
- 5 12 13
一共四组,造成重复的原因是,存在两个5。
现在要求的是,以给的的线段,能组合出来的最多直角三角形数量。这句话的意思是,我们能用3 4 5 6 5 12 13组合出最多几个直角三角形?
比如,我们已经用了3 4 5组成一个直角三角形,那么给的线段还剩下6 5 12 13,而剩下的线段中,只能组合出一个直角三角形5 12 13。
那么该如何实现一种算法找出最多的呢?
<