笑死我了,居然一遍就过了。

题意:给你5个点,让你判断能否组成一个五角星;

思路:

利用对称性,应该有很多种方法。弱打的很麻烦。但是那个两点式公式去判断另外一个点是否在一条直线上的那个判断,还是蛮喜欢的

double dd=(double)(xx[i]-onex)/(twox-onex)-(double)(yy[i]-oney)/(twoy-oney);

然后根据题目要求,去使用dd

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <iostream>
using namespace std;
#define MAX 110
#define ll __int64
#define mod 9973
#define N 1010 double x[10];
double y[10]; double xx[10];
double yy[10];
bool vis[10]; int solve()
{
double onex,oney;
double twox,twoy;
double k,b;
for(int i=1;i<=5;i++)
{
if(i==1)
{
onex=(xx[2]+xx[5])*0.5;
oney=(yy[2]+yy[5])*0.5; twox=(xx[3]+xx[4])*0.5;
twoy=(yy[3]+yy[4])*0.5;
}
else if(i==2)
{
onex=(xx[1]+xx[3])*0.5;
oney=(yy[1]+yy[3])*0.5; twox=(xx[5]+xx[4])*0.5;
twoy=(yy[5]+yy[4])*0.5;
}
else if(i==3)
{
onex=(xx[2]+xx[4])*0.5;
oney=(yy[2]+yy[4])*0.5; twox=(xx[5]+xx[1])*0.5;
twoy=(yy[5]+yy[1])*0.5;
}
else if(i==4)
{
onex=(xx[3]+xx[5])*0.5;
oney=(yy[3]+yy[5])*0.5; twox=(xx[1]+xx[2])*0.5;
twoy=(yy[1]+yy[2])*0.5;
}
else if(i==5)
{
onex=(xx[2]+xx[3])*0.5;
oney=(yy[2]+yy[3])*0.5; twox=(xx[1]+xx[4])*0.5;
twoy=(yy[1]+yy[4])*0.5;
}
double dd=(double)(xx[i]-onex)/(twox-onex)-(double)(yy[i]-oney)/(twoy-oney);
if(dd<0)
dd=-dd;
if(dd>0.00001)
{
return 0;
}
}
return 1;
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
for(int i=1;i<=5;i++)
{
scanf("%lf%lf",&x[i],&y[i]);
}
/*
xx[1]=x[1];yy[1]=y[1];
printf("%lf %lf\n",xx[1],yy[1]);
xx[2]=x[2];yy[2]=y[2];
printf("%lf %lf\n",xx[2],yy[2]);
xx[3]=x[4];yy[3]=y[4];
printf("%lf %lf\n",xx[3],yy[3]);
xx[4]=x[5];yy[4]=y[5];
printf("%lf %lf\n",xx[4],yy[4]);
xx[5]=x[3];yy[5]=y[3];
printf("%lf %lf\n",xx[5],yy[5]);
int ans=solve();
printf("%d\n",ans);
*/ int flag=0;
for(int i=1;i<=5;i++)
{
xx[1]=x[i];
yy[1]=y[i]; for(int j=1;j<=5;j++)
{
if(i!=j)
{
xx[2]=x[j];
yy[2]=y[j];
for(int p=1;p<=5;p++)
{
if(p!=i&&p!=j)
{
xx[3]=x[p];
yy[3]=y[p];
for(int q=1;q<=5;q++)
{
if(q!=i&&q!=j&&q!=p)
{
xx[4]=x[q];
yy[4]=y[q];
for(int k=1;k<=5;k++)
{
if(i!=k&&j!=k&&p!=k&&q!=k)
{
xx[5]=x[k];
yy[5]=y[k];
flag=solve();
}
if(flag) break;
}
}
if(flag) break;
}
}
if(flag) break;
}
}
if(flag) break;
}
if(flag) break;
}
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}

hdoj5563(简单几何)的更多相关文章

  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. C# 通过比对哈希码判断两个文件内容是否相同

    1.使用System.security.Cryptography.HashAlgorithm类为每个文件生成一个哈希码,然后比较两个哈希码是否一致. 2. 在比较文件内容的时候可以采用好几种方法.例如 ...

  2. selenium-python问题日记

    今天在学习selenium时遇到了两个问题,在这里记录一下: 使用unittest框架组织了测试用例后,拓展一下功能就成了我最想做的事情, 所以决定添加发邮件功能. 使用python自带的smtpli ...

  3. C++类使用static小例子(新手学习C++)

    //为什么类的成员中不能包括动态分配的数据,若包含静态数据怎么使用?#include <iostream>using namespace std;class point{    priva ...

  4. 完美解决android显示gif

    今天是周5啊.纠结了一天.android显示gif,没该控件 网上找开源项目 找到个viewgif.该作者在各大站点都在推荐自己的项目...好吧.用下吧. . . . 结果呢: 图片略微一大就 内存溢 ...

  5. sanic官方文档解析之下载和Configuration

    1,sanic框架是做什么的? sanic的官方网址:https://sanic.readthedocs.io/en/latest/ sanic框架是一个类似于flask框架的在Python3.5以上 ...

  6. XML复习笔记(复习资料为菜鸟教程里的XML教程)

    XML 指可扩展标记语言(eXtensible Markup Language) XML 的设计宗旨是传输数据,而不是显示数据. XML 标签没有被预定义.您需要自行定义标签. XML 被设计为具有自 ...

  7. Writing a Discard Server

    Netty.docs: User guide for 4.x https://netty.io/wiki/user-guide-for-4.x.html

  8. Spark理论学习笔记(一)

    1.调度 分为FIFO和FAIR两种模式 创建调度池:sc.setLocalProperty("spark.scheduler.pool", "pool6") ...

  9. 浅谈js执行机制

    关于js执行机制,老早之前就一直想写篇文章做个总结,因为和js执行顺序的面试题碰到的特别多,每次碰到总是会去网上查,没有系统地总结,搞得每次碰到都是似懂非懂的感觉,这篇文章就系统的总结一下js执行机制 ...

  10. webpack 的编译原理

    自从接触了react,vue 这两个框架,都会用到webpack这个打包工具.面试的时候,经常被问到知道webpack的编译原理吗? 可以简单的介绍一下.每每这个时候都被问的哑口无言,平时用的时候挺顺 ...