Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

这题hash怎么hash的?我二分查找都超时呢

Posted by limingfei at 2007-07-20 21:34:02 on Problem 2002
代码:
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator