Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
这题hash怎么hash的?我二分查找都超时呢代码: #include <iostream> #include <string> #include <memory> #include <algorithm> using namespace std; const int maxn = 1000; struct node { int x, y; }list[maxn]; int n; bool operator<(const node &a, const node &b) { return (a.x < b.x || (a.x == b.x && a.y < b.y)); } bool init() { cin >> n; if (!n) return false; int i; for (i = 0; i < n; ++i) { cin >> list[i].x >> list[i].y; list[i].x *= 2; list[i].y *= 2; } sort(list, list + n); return true; } void run() { int tot = 0; int i, j; int a, b; int x, y; node t1, t2; for (i = 0; i < n; ++i) { for (j = i + 1; j < n; ++j) { a = list[j].x - list[i].x; b = list[j].y - list[i].y; a /= 2; b /= 2; x = list[i].x + a; y = list[i].y + b; t1.x = x - b; t1.y = y + a; t2.x = x + b; t2.y = y - a; if (binary_search(list, list + n, t1) && binary_search(list, list + n, t2)) { ++tot; } } } cout << tot / 2 << endl; } int main(void) { while (init()) { run(); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator