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

题意:给你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. Hdu 4274 Spy&#39;s Work

    Spy's Work Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. 李洪强iOS开发之 - 指定刷新tableview的某一组

    李洪强iOS开发之 - 指定刷新tableview的某一组

  3. Redis HyperLogLog及应用

    参考:http://www.runoob.com/redis/redis-hyperloglog.html Redis 在 2.8.9 之后的版本中,添加了 HyperLogLog 结构,用来做基数统 ...

  4. openwrt gstreamer实例学习笔记(四. gstreamer Bins)

    1)概述 Bins是一种容器element.你可以往Bins中添加element.由于Bins本身也是一种element,所以你可以像普通element一样 操作Bins.因此,先前关element的 ...

  5. Android实现RecyclerView的下拉刷新和上拉载入很多其它

    需求 先上效果图, Material Design风格的下拉刷新和上拉载入很多其它. 源代码地址(欢迎star) https://github.com/studychen/SeeNewsV2 假设对于 ...

  6. URL 下载

    package URL; import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import j ...

  7. 数据结构之 栈与队列--- 走迷宫(深度搜索dfs)

    走迷宫 Time Limit: 1000MS Memory limit: 65536K 题目描述 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方 ...

  8. Python之如果添加扩展包

    1.首先下载好你需要的扩展包 下载地址是http://www.lfd.uci.edu/~gohlke/pythonlibs/ 2.将你下载好的.whl文件放在你的python文件夹中的Lib\site ...

  9. codeforces B. 4-point polyline 解题报告

    题目链接:http://codeforces.com/problemset/problem/452/B 题目意思:给出一个长为n,宽为 m 的矩形,要从这里面(包括边上)找出4个不同的点,使得以某一个 ...

  10. codeforces 691B B. s-palindrome(水题)

    题目链接: B. s-palindrome 题意: 问给定的字符串是否是镜面对称; 思路: 直接看哪些字母是镜面对称的就行: AC代码: //#include <bits/stdc++.h> ...