基于stl的正方形(poj)
来源:互联网 发布:ltp1端口 编辑:程序博客网 时间:2024/06/05 10:02
//已知正方形的两点(x1,y1) (x2,y2) 则另外两点分别为
//(x1+(y1-y2),y1-(x1-x2))和(x2+(y1-y2),y2-(x1-x2) 或者(x1-(y1-y2),y1+(x1-x2))和(x2-(y1-y2),y2+(x1-x2)
#include<cstdio>
#include<iostream>#include<utility>
#include<vector>
#include<set>
using namespace std;
set<pair<int,int> > st;//set判重
vector<pair<int,int> > vect;//vector存储,注意清空
int main(){
int a;
while(cin>>a&&a){
vect.clear();
st.clear();
for(int i=0;i<a;i++){
int b,c;
cin>>b>>c;
vect.push_back(make_pair(b,c));
st.insert(make_pair(b,c));
}
int ans=0;
for(int i=0;i<vect.size();i++){
for(int j=i+1;j<vect.size();j++){
int x1=vect[i].first,y1=vect[i].second,x2=vect[j].first,y2=vect[j].second;
int x3=x1+(y1-y2),y3=y1-(x1-x2),x4=x2+(y1-y2),y4=y2-(x1-x2);
if(st.count(make_pair(x3,y3))&&st.count(make_pair(x4,y4)))ans++;
x3=x1-(y1-y2),y3=y1+(x1-x2),x4=x2-(y1-y2),y4=y2+(x1-x2);
if(st.count(make_pair(x3,y3))&&st.count(make_pair(x4,y4)))ans++;
}
}
cout<<ans/4<<endl;
}
return 0;
}
0 0
- 基于stl的正方形(poj)
- poj Squares 2002 (STL&&枚举+转换) 统计正方形的个数
- poj 2002 正方形个数 (对点的hash 存储)
- POJ 3301 三分(最小覆盖正方形)
- POJ 2002 Squares (已知正方形对角线两点推另外两点,STL set)
- POJ 2002 检查正方形
- 第一个基于C++的opengles画正方形
- poj 1915 bfs(STL的queue)
- POJ 2002 Squares 求正方形的个数,点哈希
- POJ 2002-Squares(hash拉链法-正方形个数)
- POJ 3301 Texas Trip(最小正方形覆盖+三分)
- 完美的正方形分割(二)
- [HAOI2007]理想的正方形(优先队列)
- poj 2002 HASH判断正方形
- POJ - 2002(静态哈希链表找正方形)
- 基于STL的KMP算法
- 基于STL的学生信息管理
- 求正方形的 点覆盖,正方形不能斜放(线段扫描)
- bzoj1014火星人(字符串hash+splay)
- R语言安装包操作
- MSYS2 + MinGW-w64 + Git + gVim 环境配置
- Android 6.0中添加C可执行程序验证硬件驱动程序
- centos中wget的使用方法
- 基于stl的正方形(poj)
- HDU 1325 Is It A Tree 并查集+树的性质
- 排序算法的稳定性和不稳定性
- Java中Date和Calender类的使用方法
- Hello, world!
- Xcode项目工程文件存放的地方
- Dubbo的广播模式下Can't assign requested address问题解决
- 61.Given below is a list of scenarios: 1) A user terminates his session abnormally. 2) The connectio
- 23种java设计模式之工厂模式