首页 > 试题广场 >

组装三角形

[编程题]组装三角形
  • 热度指数:5742 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛手里有N根木棒,分别编号为1~N,现在他从N根里想取出三根木棒,使得三根木棒构成一个三角形,你能计算出牛牛有多少种取法吗?(考虑两种取法中使用的木棒编号有一个不一样就认为是不同的取法)。

输入描述:
首先输入一个正整数N,接下来的一行共有N个正整数表示每个木棒的长度。
N ≤ 50, 木棒的长度 ≤ 10000.


输出描述:
输出一个整数表示方法数。
示例1

输入

5
1 2 3 4 5

输出

3
头像 三大爷的剑
发表于 2021-09-05 00:52:17
1 先排序2 三个指针 a b c a 是固定的 b c是滑动指针如果 arr[a] + arr[b] > arr[c] (三角形特性)那么和 ab 能成功匹配的极限c值就是第一个大于等于arr[a] + arr[b] 的前一个位置 (由于排序的原因 这里就跳过了很多无效的匹配) 。 展开全文
头像 牛客873478221号
发表于 2022-06-14 12:11:41
n = int(input()) nums = [int(i) for i in input().split(' ')] nums.sort() x=0 for i in range(n-2): for j in range(i+1,n-1): k=j+1 while k<n: 展开全文

热门推荐

通过挑战的用户

组装三角形