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

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. 使用 EF Power Tool Code Frist 生成 Mysql 实体

    原文:使用 EF Power Tool Code Frist 生成 Mysql 实体 1,在要生成的项目上右键   2,   3,   4,   5,  生成后的效果     已知问题: 1,在Mys ...

  2. 创建Mysql 序列

    create table sequence( name ) not null primary key, current_value , increment , max_value BIGINT, -- ...

  3. iOS开发——毛玻璃透明

    主要实现的代码如下: self.rateInfoView是定义好的控制属性控件 可以改变透明度的值来改变毛玻璃透明的效果 // 虚拟交易费率弹窗 - (void)showRateInfo{ self. ...

  4. C#--格式化数值数据

    如果数值数据需要更精细的格式化,每一个占位符都可以包含不同的格式字符,下表展示了核心格式化选项.   下面用一个例子来说明. namespace LearningCSharp { class Prog ...

  5. spring aop配置及用例说明(4)

    欢迎交流转载:http://www.cnblogs.com/shizhongtao/p/3476161.html 这里简单对xml的配置方式做一下描述.代码还是上一篇(http://www.cnblo ...

  6. Android 源码编译及常见错误及解决方法

    最近要往arm开发板上移植android系统,大大小小的问题遇到了太多太多,都是泪啊.本人初接触嵌入式开发,对问题的根源不是太了解,不过好在每解决一个问题,便记录一下.话不多说,正式罗列问题: hos ...

  7. HR不会告诉你的秘密

    原文转载自http://blog.csdn.net/happy08god/article/details/5534326 下面,只是摘出来一些基本的观点. 1. 入职时的工资高低不重要,只要你努力工作 ...

  8. Android Studio生成APK自动追加版本号

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/android-apk-studio-generated-automatically-appends-a-ve ...

  9. mysql 不能远程连接

    不想浪费大家时间,我这文章记录了我在vagrant上架的mysql远程连接不上的问题,不过我在整理时发现这个下面这个链接,如果我一开始能找到这个我就不会绕那么多弯了.不想看我是怎么一步步调错过程的请直 ...

  10. (转)[Erlang 0080] RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels

    和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却 ...