博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA10256 The Great Divide(凸包相交)
阅读量:6226 次
发布时间:2019-06-21

本文共 2097 字,大约阅读时间需要 6 分钟。

题意:平面上有n个红点和m个蓝点,是否存在一条直线使得任取一个红点和一个蓝点都在直线的异侧?这条直线不能穿过红点或蓝点

分析:显然,求红点凸包和蓝点凸包,如果这两个凸包有相交的部分就不存在这样的直线,否则就存在呗

#include 
using namespace std;double eps=1e-15;double pi=acos(-1);struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){}};typedef Point Vector;Vector operator + (Vector A,Vector B){
return Vector(A.x+B.x,A.y+B.y);}Vector operator - (Vector A,Vector B){
return Vector(A.x-B.x,A.y-B.y);}Vector operator * (Vector A,double B){
return Vector(A.x*B,A.y*B);}Vector operator / (Vector A,double B){
return Vector(A.x/B,A.y/B);}int dcmp(double x){ if(fabs(x)
1&&Cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0)m--; ch[m++]=p[i]; } int k=m; for(int i=n-2;i>=0;i--){ while(m>k&&Cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0)m--; ch[m++]=p[i]; } if(n>1)m--; return m;}void readp(Point &A){ scanf("%lf%lf",&A.x,&A.y);}bool onsegment(Point p,Point a1,Point a2){ if(p==a1||p==a2)return false; return dcmp(Cross(a1-p,a2-p))==0&&dcmp(Dot(a1-p,a2-p))<0;}bool segmentcross(Point a1,Point a2,Point b1,Point b2){ if(a1==b1||a1==b2||a2==b1||a2==b2)return true; double c1=Cross(a2-a1,b1-a1),c2=Cross(a2-a1,b2-a1), c3=Cross(b2-b1,a1-b1),c4=Cross(b2-b1,a2-b1); return dcmp(c1)*dcmp(c2)<0&&dcmp(c3)*dcmp(c4)<0;}int intubao(Point *ch,int n,Point p){ Vector A,B; int flag=0; for(int i=0;i
0){ flag++; } } if(flag==-1||flag==n)return 1; return 0;}int T,n,m;Point p1[10005],ch1[10005],p2[10005],ch2[10005];int main(){ while(~scanf("%d%d",&n,&m)&&!(n==0&&m==0)){ for(int i=0;i

 

转载于:https://www.cnblogs.com/ccsu-kid/p/9492681.html

你可能感兴趣的文章
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
由String类的Split方法所遇到的两个问题
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
百度页面分享插件源代码
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
spring配置多数据源问题
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
简明Linux命令行笔记:tail
查看>>
PMP考试的过与只是
查看>>