Fzu2110计算几何
判断锐角三角形的方法:两个较短边的平方和大于较长那条边的平方和,这个三角形就是锐角三角形。
#define _CRT_SECURE_NO_DEPRECATE #include <cstdio> #include <algorithm> #include<iostream> using namespace std; struct node { double x; double y; }a[100]; double num(double x1, double y1, double x2, double y2) { return (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2); } bool istri(int i, int j, int k) { double s[3]; s[0] = num(a[i].x, a[i].y, a[j].x, a[j].y); s[1] = num(a[i].x, a[i].y, a[k].x, a[k].y); s[2] = num(a[j].x, a[j].y, a[k].x, a[k].y); sort(s, s + 3); if (s[2] < s[0] + s[1]) { return 1; } else return 0; } int main() { int t, n; scanf("%d", &t); while (t--) { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%lf%lf", &a[i].x, &a[i].y); } int sum = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { if (istri(i, j, k)) { sum++; } } } } cout << sum << endl; } return 0; }

浙公网安备 33010602011771号