题意:给定的这些点是否有一个对称中心。

PS:我写得有点啰嗦。。

就是把小的x和大的x进行匹配。

 #include<stdio.h>
#include<algorithm>
#include<math.h>
using namespace std; const double eps = 1e-;
const int maxn = ; struct Point{
double x,y;
};
Point pnt1[ maxn ],pnt2[ maxn ];
Point cc; int cmp1( Point a,Point b ){
return a.x<b.x;
} int cmp2( Point a,Point b ){
return a.y<b.y;
} int cmp3( Point a,Point b ){
return a.x>b.x;
} bool NotOnePoint( Point a,Point b ){
if( fabs(a.x-b.x)<=eps&&fabs(a.y-b.y)<=eps ) return false;
else return true;
} bool OK( Point a,Point b ){
if( fabs((a.x+b.x)-(2.0*cc.x))<=eps && fabs((a.y+b.y)-(2.0*cc.y))<=eps ) return true;
else return false;
} bool Notcc( Point a ){
if( fabs(a.x-cc.x)<=eps&&fabs(a.y-cc.y)<=eps ) return true;
else return false;
} int main(){
int n;
int T;
//freopen("in.txt","r",stdin);
scanf("%d",&T);
while( T-- ){
scanf("%d",&n);
for( int i=;i<=n;i++ ){
scanf("%lf%lf",&pnt1[i].x,&pnt1[i].y);
pnt2[ i ] = pnt1[ i ];
}
if( n== ){
puts("yes");
continue;
}
sort( pnt1+,pnt1++n,cmp1 );
cc.x = (pnt1[].x+pnt1[n].x)/2.0;
sort( pnt2+,pnt2++n,cmp2 );
cc.y = (pnt2[].y+pnt2[n].y)/2.0;
sort( pnt2+,pnt2++n,cmp3 ); int cnt = ;
if( n%== ){
for( int i=;i<=n;i++ ){
if( pnt1[i].x==cc.x&&pnt1[i].y==cc.y ){
cnt++;
}
}
}
if( (n-cnt)%== ){
puts("no");
continue;
}
if( n==cnt ){
puts("yes");
continue;
}
//printf("cc:x = %lf,y = %lf\n",cc.x,cc.y);
/*
for( int i=1;i<=n;i++ ){
printf("x = %lf \n",pnt1[i].x);
}
for( int i=1;i<=n;i++ ){
printf("x = %lf \n",pnt2[i].x);
}
*/
int tt = ;
int N = n - cnt;//N%2=0
for( int i=;i<=(n/)&&tt<(N/);i++ ){
tt++;
//printf(" i =%d ",i);
//printf("pnt1:x = %lf y = %lf\n",pnt1[i].x,pnt1[i].y);
bool find = false;
for( int j=;j<=(n/);j++ ){
//printf(" j = %d \n",j);
//printf("pnt2:x = %lf y = %lf\n",pnt2[j].x,pnt2[j].y);
if( (pnt1[i].x+pnt2[j].x)<2.0*cc.x ) break;
if( /*Notcc(pnt1[i])==true&&*/NotOnePoint(pnt1[i],pnt2[j])==true&&OK(pnt1[i],pnt2[j])==true ){
find = true;
cnt += ;
break;
}
}
//if( find==true ) printf("true\n");
//else printf("false\n");
if( find==false ) break;
}
if( cnt==n ){
puts("yes");
continue;
}
puts("no");
}
return ;
}

POJ2526+简单几何的更多相关文章

  1. Python下opencv使用笔记(二)(简单几何图像绘制)

    简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...

  2. Codeforces 935 简单几何求圆心 DP快速幂求与逆元

    A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...

  3. 简单几何(线段相交) POJ 2653 Pick-up sticks

    题目传送门 题意:就是小时候玩的一种游戏,问有多少线段盖在最上面 分析:简单线段相交,队列维护当前最上的线段 /******************************************** ...

  4. osg for android (一) 简单几何物体的加载与显示

    1. 首先需要一个OSG for android的环境. (1).NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一) ...

  5. HDU 6206 青岛网络赛1001 高精度 简单几何

    给出的数据1e12规模,常规判点是否在圆范围内肯定要用到半径,求得过程中无法避免溢出,因此用JAVA自带的浮点大数运算,和个ZZ一样比赛中eclipse出现问题,而且太久没写JAVA语法都不清楚变量忘 ...

  6. CodeForces 703C Chris and Road (简单几何)

    题意:有一个n边形的汽车向以速度v向x轴负方向移动,给出零时时其n个点的坐标.并且有一个人在(0,0)点,可以以最大速度u通过w宽的马路,到达(0,w)点.现在要求人不能碰到汽车,人可以自己调节速度. ...

  7. Jack Straws POJ - 1127 (简单几何计算 + 并查集)

    In the game of Jack Straws, a number of plastic or wooden "straws" are dumped on the table ...

  8. codeforces 394E Lightbulb for Minister 简单几何

    题目链接:点我点我 题意:给定n个点. 以下n行给出这n个点坐标. 给定m个点,以下m行给出这m个点坐标. 这m个点是一个凸包,顺时针给出的. 问:在凸包上随意找一个点(x, y) 使得这个点距离n个 ...

  9. hdu - 3952 Fruit Ninja(简单几何)

    思路来自于:http://www.cnblogs.com/wuyiqi/archive/2011/11/06/2238530.html 枚举两个多边形的两个点组成的直线,判断能与几个多边形相交 因为最 ...

随机推荐

  1. IOS UI 笔记整理回顾

    注意手势会冒泡上抛,一个view没有实现的手势,如果父类view有实现,父视图就处理,如果不想让父视图处理,就把本视图添加到底层window上 setMasksToBounds:YES imageVi ...

  2. 百度或者Google---SEO优化

    google和百度的技术差别: 1.百度还认不清哪个是原创的 2.google蜘蛛不够百度快 4.google排名结果随时变化 流量.权重.权威.内容.用户体验.用户关注度等等细节的排名,已表达了SE ...

  3. DOM_节点层次_Document类型

    一.Document类型 nodeType: 9; nodeName: "#document"; nodeValue: null; parentValue: null; owner ...

  4. NOIP2011(提高组)DAY2---观光公交(vijosP1741)

    描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景 ...

  5. C/C++中浮点数格式学习——以IEEE75432位单精度为例

    这是浮点数的通常表示形式,在IEEE754中,单精度浮点数有如下形式: 位单精度 个比特存储. 位长 至23偏正值(实际的指数大小+127) 至0位编号(从右边开始为0) S为符号位,Exp为指数字, ...

  6. CSS实现不固定宽度和高度的自动居中

    有时候我们需要实现下面这种效果: 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大高度不让你剧中 嘎嘎,撑大 ...

  7. 从 Typecho 自定义字段的调用代码看去

    千呼万唤,Typecho 的"自定义字段"功能终于在 0.9 中出来了.然而,多数人还蒙在这样一个鼓里--该怎么在模板调用已经设置好的自定义字段呢?让我们从这里开始说下去: Typ ...

  8. 漫谈php全局变量Global

    global语句的作用是定义全局变量,例如如果想在函数内访问全局作用域内的变量则可以通过global声明来定义. 下面从语法解释开始分析. 1. 词法解析 查看 Zend/zend_language_ ...

  9. linux内核中sys_poll()的简化分析

    app:poll or select; kernel: sys_poll(); do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,st ...

  10. 【android-cocos2d-X2.2 环境配置】在Mac下搭建Cocos2d-X-android开发环境!

    仅用于cocos2d-X2.2--cocos2d-X3.4 原文地址:http://blog.csdn.net/dingkun520wy/article/details/17097593 (1)下载 ...