1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n, m, ans; struct node { char op; double a, b, c, d; } a[505]; // 储存所有的图形 double x, y; double len(double x1, double y1, double x2, double y2) { return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); } // 求距离 int main() { scanf("%d%d\n", &n, &m); for (int i = 1; i <= n; i++) { scanf("%c%lf%lf%lf", &a[i].op, &a[i].a, &a[i].b, &a[i].c); if (a[i].op == 'r') scanf("%lf", &a[i].d); scanf("\n"); } for (int i = 1; i <= m; i++) { scanf("%lf%lf", &x, &y); ans = 0; for (int j = 1; j <= n; j++) { if (a[j].op == 'r') { if (min(a[j].a, a[j].c) < x && x < max(a[j].a, a[j].c) && min(a[j].b, a[j].d) < y && y < max(a[j].b, a[j].d)) ans++; } else { if (len(x, y, a[j].a, a[j].b) < a[j].c) ans++; } } // 暴力 printf("%d\n", ans); } return 0; }
- 1
信息
- ID
- 2852
- 时间
- 500ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 307
- 已通过
- 75
- 上传者