codeforces gym asc46A map预处理
来源:互联网 发布:relex软件模块 编辑:程序博客网 时间:2024/06/05 12:02
//能不用STL,就尽可能不用,毕竟太耗时。
//没必要将longlong 映射为一个int,反而耗时
//注意n*n,有时是可以将为n*n/2,此题很有用,毕竟有一个计算距离的式子
//时限给8s,但很多都是0s,求正解
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <vector>#include <string>#include <map>#include <cstdlib>#include <ctime>using namespace std;const int N = 3010;#define ll long longmap <pair<pair<ll, ll>, ll>, int> M;struct node{ ll x, y;} p[N];int n;ll zero[N];#ifdef ONLINE_JUDGE#define lld I64d#endifint main(){freopen("astronomy.in", "r", stdin);freopen("astronomy.out", "w", stdout);while (scanf("%d", &n) && n){ for (int i = 1; i <= n; ++i) { scanf("%lld %lld", &p[i].x, &p[i].y); zero[i] = p[i].x * p[i].x + p[i].y * p[i].y; } pair<pair<ll, ll>, ll> q; pair<ll, ll> q0; M.clear(); for (int i = 1; i <= n; ++i) { ll a = zero[i]; for (int j = 1 + i; j <= n; ++j) { ll b = zero[j]; ll c = (p[i].x - p[j].x) * (p[i].x - p[j].x) + (p[i].y - p[j].y) * (p[i].y - p[j].y); q0 = make_pair(a, b); q = make_pair(q0, c); M[q]++; q0 = make_pair(b, a); q = make_pair(q0, c); M[q]++; } } int m; scanf("%d", &m); for (int i = 1; i <= m; ++i) { ll a, b, c;scanf("%lld %lld %lld", &a, &b, &c); q0 = make_pair(a, b);q = make_pair(q0, c);int ans = M[q];if (a == b) ans /= 2;printf("%d\n", ans); }}return 0;}
0 0
- codeforces gym asc46A map预处理
- 【Codeforces Gym
- 【codeforces Gym
- codeforces Gym
- codeforces Gym
- codeforces Gym
- codeforces Gym
- Codeforces Gym
- Codeforces Gym
- Codeforces Gym
- codeforces Gym
- Codeforces Gym
- Codeforces Gym
- Codeforces Gym
- [codeforces] Gym
- [codeforces] Gym
- [codeforces] Gym
- [codeforces] Gym
- unix编程书籍推荐
- 一个实现多线程的例子
- hibernate 注解
- cocos2d-x 3.0 版本创建新工程方法
- 如何在pcduino上实现WiFi AP功能
- codeforces gym asc46A map预处理
- gdb远程调试
- 《Java程序员的推荐阅读书籍》
- 查看linu系统编码,解决中文编码不一致的问题
- jQuery 添加方法详解 141105
- LeetCodeOJ. Longest Common Prefix
- 消除: warning C4996: 'sprintf': This function or variable may be unsafe. Consider 的方法
- Oracle 游标使用全解实例
- 原型