首页 > 试题广场 >

数三角

[编程题]数三角
  • 热度指数:34 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛得到了一个平面,这个平面上有 n 个不重合的点,第 i 个点的坐标为 (x_i,y_i)

牛牛想知道,这 n 个点形成的三角形中,总共有多少个钝角三角形。


输入描述:
第一行,一个正整数 n,表示点数。

第二行至第 n+1 行中,第 i+1 行包含两个整数 x_i,y_i,表示第 i 个点的坐标。

保证 ,任意两点不重合。


输出描述:
输出一行,一个整数表示答案。
示例1

输入

3
0 0
-1145 1
1 0

输出

1
头像 Peterliang
发表于 2020-02-07 17:25:35
哈哈,我又来了!同样,我们先来分析题目,这里我要说一点,大家做这种比赛的题目第一步就是要先审清题目,很多人一看到题目提交的人数很少或是为了抢时间,就匆匆扫了一眼题目,然后就动手,这样是很不好的习惯。笔者看来,对于一道题目,审题往往是要去花心思的,我们要看清题目讲的是什么,输入格式,输出格式等等,不要 展开全文
头像 --嘤色暴撃--
发表于 2020-02-06 18:42:02
一种十分暴力的暴力 首先我们枚举3个点。我们知道,这3个点可能构成三角形或一条线。我们需要把线的情况判掉,剩下的三角形再通过一些手段判断出是否为钝角三角形。对于三个点x(x1,y1),y(x2,y2),z(x3,y3)我们以x为原点重新构造坐标系,那么此时y(x2-x1,y2-y1),z(x3-x1 展开全文
头像 牛客362459853号
发表于 2025-12-11 00:02:15
该题目可以通过向量的点积来判断向量的夹角,从而判定三角形中任意两条边的夹角。A(x1,y1)*B(x2,y2)=x1*x2+y1*y2,这里a,b是向量而非坐标。可以通过判定a是否小于0来判断夹角是否为钝角。 #include <iostream> #include <vector 展开全文