poj2002 STL set

原创 2018年04月16日 18:53:35

题意:

给n个点,问最多能构成多少个正方形?

思路:

枚举两个点,计算组成正方形所需的另外两个点,若这两个点在所给的点集合中,则cnt++,最后的答案为cnt/2;

(set 里 count() 返回整数,且只为 0 或 1 find() 返回迭代器)

//#include<bits/stdc++.h>
#include<iostream>
#include<set>

using namespace std;
typedef pair<int,int> Point;
const int maxn=1005;
int x[maxn],y[maxn];
set<Point> pset;
int main()
{
	ios::sync_with_stdio(false);
	int n; 
	while(cin>>n&&n)
	{
		pset.clear();
		for(int i=0;i<n;i++)
		{
			cin>>x[i]>>y[i];
			pset.insert(make_pair(x[i],y[i]));
		}
		int cnt=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				int mx=x[i]+x[j],dx=(max(x[i],x[j])-min(x[i],x[j]));
				int my=y[i]+y[j],dy=(max(y[i],y[j])-min(y[i],y[j]));
				if((mx+dy)&1||(my+dx)&1)	continue;
				int sg=((x[i]-x[j])*(y[i]-y[j])<0)?1:-1;
				if(pset.count(make_pair((mx+dy)/2,(my+sg*dx)/2))&&
				pset.count(make_pair((mx-dy)/2,(my-sg*dx)/2)))
				cnt++;
			}
		}
		cout<<cnt/2<<endl;
	}
	return 0;
} 

STL之Set:Set的基本用法

STL之Set:Set的基本用法
  • ac_hexin
  • ac_hexin
  • 2016-07-27 09:52:13
  • 12487

STL 中简单的set总结

1、set会根据特定的排序准则自动将元素排序,set中元素不允许重复,search操作效率会很高O(log n) 2、关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数...
  • HowardEmily
  • HowardEmily
  • 2016-12-11 15:47:16
  • 860

STL之set集合容器

set集合容器实现了hongheish
  • LYHVOYAGE
  • LYHVOYAGE
  • 2014-04-05 18:06:59
  • 23033

STL--set注意事项

混杂着记录的,可能会比较乱,但是都是一些有用的点 1.insert pair insert(const value_type& x); iterator insert(iterator positi...
  • qq1263292336
  • qq1263292336
  • 2015-11-24 20:09:14
  • 800

POJ2002---Squares(找正方形的个数)

Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 17569   Accep...
  • lv414333532
  • lv414333532
  • 2015-08-12 19:59:16
  • 487

STL之Set自定义排序

方法一、以类为比较器 struct classCompare { bool operator()(const int& lhs, const int& rhs) { ...
  • CillyB
  • CillyB
  • 2016-05-23 20:38:20
  • 1630

STL之set 的用法

set 容器的用法 1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等 方便的容器,更重要的是STL封装了许多复杂的数...
  • Legendary_life
  • Legendary_life
  • 2015-09-11 16:57:55
  • 597

STL 中map 和 set 的知识点总结

STL中的容器有顺序容器 (vector,list,deque),关联容器(map,set)还有一些其他容器。 根据不同的场合选择不同的容器,会有意想不到的收获。 Map是单词mappin...
  • wu_lai_314
  • wu_lai_314
  • 2012-12-26 19:06:06
  • 5868

STL set容器 基本运用

 容器(Container)的概念的出现早于模板(template),它原本是一个计算机科学领域中的一个重要概念,但在这里,它的概念和STL混合在一起了。下面是在STL中出现的7种容器: ve...
  • hj1214ing
  • hj1214ing
  • 2016-09-20 23:16:20
  • 235

C++ STL set自定义比较函数

C++ STL 容器很多都可以自定义比较函数,给容器调用,对其中的子项做排序。下面是一个小例子: [cpp] view plaincopy #inc...
  • mydriverc2
  • mydriverc2
  • 2015-03-12 22:29:23
  • 1853
收藏助手
不良信息举报
您举报文章:poj2002 STL set
举报原因:
原因补充:

(最多只允许输入30个字)