题库首页 › 信息学奥赛 › 题目 14871

完善程序(2) 6-10题 组合题 (矩形计数)平面上有 n 个关键点,求有多少个四条边都和 x 轴或者 y 轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。 试补全枚举算法。 #include using namespace std; struct point { int x, y, id; }; bool equals(point a, point b) { return a.x == b.x && a.y == b.y; } bool cmp(point a, point b) { return ①; } void sort(point A[], int n) { for (int i = 0; i > n; for (int i = 0; i > A[i].x >> A[i].y; A[i].id = i; } sort(A, n); n = unique(A, n); int ans = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) { ans++; } cout << ans << endl; return 0; }

正确答案:完善程序①答案:a.x==b.x? a.y<b.y : a.x<b.x(先x后y排序)。核心:排序规则。

试卷来源:2021 CSP-J入门级(第一轮)C++真题

本卷相关题目

在线做题 同科目题库