51NOD 1264 线段相交
2015-08-21 09:41
239 查看
就是判断两条线段是否相交。
要么判断MBR 要么判断跨立。
![](http://img.blog.csdn.net/20150821093436177?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
计算叉积的乘积。判断跨立。叉积的几何意义,参见matrix67大神的博客。
要么判断MBR 要么判断跨立。
计算叉积的乘积。判断跨立。叉积的几何意义,参见matrix67大神的博客。
#include<cstdio> #include<cstring> #include<string> #include<queue> #include<algorithm> #include<map> #include<stack> #include<iostream> //#include<list> //#include<set> //#include<bitset> #include<vector> //#include<valarray> #include<cmath> #define INF 0x7fffffff #define eps 1e-6 #define LL long long #define PI 3.141592654 #define CLR(a,b) memset(a,b,sizeof(a)) #define FOR(i,a,b) for(int i=a;i<b;i++) #define REP(i,a,b) for(int i=a;i>=b;i--) #define sf scanf #define pf printf #define all(v) (v).begin(),(v).end() #define acfun std::ios::sync_with_stdio(false) #define DEBUG freopen("in.txt","r",stdin);\ freopen("out.txt","w",stdout); #define SIZE (1000 +2) #define MOD 1000000007 using namespace std; struct point { double x,y; point(double xx=0,double yy=0){x=xx,y=yy;} }; inline point getvector(point a,point b) { point tmp(b.x-a.x,b.y-a.y); return tmp; } inline double crossproduct(point a,point b) { return a.x*b.y-a.y*b.x; } bool solve(point a,point b,point c,point d) { point ca,cb,cd,ac,ad,ab; ca=getvector(c,a); cb=getvector(c,b); cd=getvector(c,d); ac=getvector(a,c); ad=getvector(a,d); ab=getvector(a,b); if(crossproduct(cd,ca)*crossproduct(cd,cb)<=0&& crossproduct(ac,ab)*crossproduct(ad,ab)<=0) return 1; else return 0; } int main() { int t; sf("%d",&t); while(t--) { point l[4]; FOR(i,0,4) sf("%lf%lf",&l[i].x,&l[i].y); if(solve(l[0],l[1],l[2],l[3])) puts("Yes"); else puts("No"); } }
相关文章推荐
- Ubuntu下 Qt Creator程序调试不显示中文问题
- HDU 2159 FATE (完全背包+有限尚需时日)()双费背包
- 图片与文字在div里实现垂直水平都居中
- 移植u-boot-1.1.6之NOR的支持
- android学习资料
- HDU 1081 To The Max
- HDU 5416 CRB and Tree
- HTML5游戏 看你有多“色” 开发
- SSDP 简单服务发现协议
- JAVA字符串与字符编码处理
- 个人--博客访问量
- 前段代码异常日志收集与监控
- 《JavaScript & jQuery交互式Web前端开发》之JavaScript基础指令
- mongodb删除数据库
- stl string截空格,替换字符串
- CasperJS,基于PhantomJS的工具包
- python kmeans算法
- 自定义View
- tomcat web容器中,调用jersey client端报错的处理
- 如何让其他计算机访问我的计算机上数据库mysql