CodeForces 660D Number of Parallelograms
来源:互联网 发布:广数g90编程实例 编辑:程序博客网 时间:2024/06/05 09:27
#include<iostream>#include<cstdio>#include<cstdlib>#include<string>#include<memory.h>#include<functional>#include<limits.h>#include<vector>#include<algorithm>#include<cmath>#include<iomanip>#include<set>#include<map>using namespace std;const int maxn = 2005;struct point {int x, y;point(int x1 = 0, int y1 = 0) :x(x1), y(y1) {}}p[maxn];struct vec {int x, y;vec(int x1, int y1) :x(x1), y(y1) {}bool operator==(const vec& v) const {return x == v.x && y == v.y;}bool operator<(const vec& v) const {if (x == v.x)return y < v.y;return x < v.x;}};int main() {int n;while (cin >> n) {for (int i = 0; i < n; ++i) {cin >> p[i].x >> p[i].y;}map<vec, int> mp;for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {int x = p[i].x - p[j].x;int y = p[i].y - p[j].y;if (x < 0)x = -x, y = -y;if (x == 0 && y < 0)y = -y;vec temp1(x, y);mp[temp1]++;}}bool ok = false;long long cnt = 1;map<vec, int>::iterator it;for (it = mp.begin(); it != mp.end(); ++it) {if (it->second >= 2) {ok = true;cnt += it->second * (it->second-1) / 2;}}if (ok)cout << cnt/2 << endl;elsecout << 0 << endl;}return 0;}暴力枚举,找到一组相等的向量→肯定可以构成一个平行四边形(肯定还会出现它的另一对边,这里相当于多算了一次,故最后结果除以2)
0 0
- codeforces 660D. Number of Parallelograms
- CodeForces 660D Number of Parallelograms
- Codeforces 660D Number of Parallelograms
- Codeforces 660D Number of Parallelograms 【思维】
- CodeForces 660D Number of Parallelograms
- CodeForces 660D Number of Parallelograms
- CodeForces 660D. Number of Parallelograms【模拟】
- codeforces 660D - Number of Parallelograms
- CodeForces 660D Number of Parallelograms
- CodeForces 660D Number of Parallelograms(水题)
- Codeforces 660D Number of Parallelograms【平行四边形个数】
- Number of Parallelograms CodeForces 660D 思维题
- CodeForces 660D Number of Parallelograms [想法题]
- D. Number of Parallelograms
- D. Number of Parallelograms
- D. Number of Parallelograms
- Number of Parallelograms CodeForces
- Educational Codeforces Round 11-D. Number of Parallelograms
- 转义字符
- JSON入门总结
- Swift基础01
- 线程同步和线程死锁
- shadowsocks
- CodeForces 660D Number of Parallelograms
- 关于CSS常用用法(持续更新)
- 《移动App测试实战》读书笔记
- CodeForces 329B(BFS)
- 【CodeForces】A. Pouring Rain
- 浅谈UML的概念和模型之UML九种图
- 【LeetCode】Best Time to Buy and Sell Stock 解题报告
- 第一节---简单计算器
- opencv中自定义数据结构读写yml