poj2318(叉积判断点的位置+二分查找)
来源:互联网 发布:美少女梦工厂 mac 编辑:程序博客网 时间:2024/04/27 22:24
作为一个计算几何入门者,个人感觉是个好题
给定两点(x1,y1)、(x2,y2)确定的直线和一点(x,y),判断点在直线的左边还是右边
代码如下:
#include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<time.h>#include<math.h>#define eps 1e-9#define pi acos(-1.0)#define N 5000+10#define P system("pause")using namespace std;struct point { double x,y; };double a[N],b[N]; //记录每条直线int c[N];//记录每个块中玩具的数目double cross(point A,point B)//叉积{ return A.x*B.y-A.y*B.x; }int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout); int n,m,i; double x1,y1,x2,y2; while(scanf("%d",&n) && n) { memset(c,0,sizeof(c)); scanf("%d%lf%lf%lf%lf",&m,&x1,&y1,&x2,&y2); for(i=1;i<=n;i++) scanf("%lf%lf",&a[i],&b[i]); a[0]=x1;a[n+1]=x2; b[n+1]=x1; b[n+1]=x2; double x,y; for(i=0;i<m;i++) { scanf("%lf%lf",&x,&y); int left=0,right=n+1; while(left<right) //二分查找 这只是一种写法,个人喜欢这样写 { int mid=(left+right)/2; point v,w; // v.x=a[mid]-b[mid];v.y=y1-y2; v.x=a[mid]-x;v.y=y1-y; //w.x=x-b[mid];w.y=y-y2; w.x=b[mid]-x;w.y=y2-y; if(cross(w,v) > eps)//点在直线左边 right=mid; else left=mid+1; } c[left]++; } for(i=0;i<=n;i++) printf("%d: %d\n",i,c[i+1]); printf("\n"); } // P; return 0; }
0 0
- poj2318(叉积判断点的位置+二分查找)
- Poj2318使用叉积判断点和线段的位置关系
- 几何+点与线段的位置关系+二分(POJ2318)
- POJ2318->叉积判断点在线段的左右
- POJ2318 叉积判断点与直线的关系
- 叉积判断点在多边形内外 & poj2318
- poj2318(叉积计算点与直线的关系)
- poj2318 Toys-叉积和二分思想
- poj2398Toy Storage【判断直线与点位置关系+排序+二分查找】
- poj 2398 poj 2318 二分+叉乘 判断 点与线段的位置
- 判断点的位置
- poj2318TOYS【二分+点与直线位置判断】
- POJ2318 TOYS 解题报告【二分答案+向量叉积】
- poj2318——TOYS(计算几何+点与线段的位置)
- poj 2398 叉积判断点位置
- 叉积的性质 【poj2318】 TOYS
- poj 2318 直线和点位置关系(二分查找)
- poj 2318 点与线位置关系的判断 二分+叉积
- JavaEE体系架构概述
- 设计模式_迭代器模式
- java学习之C语言基础2
- 防止qq代码攻击 (linkey)
- 查找
- poj2318(叉积判断点的位置+二分查找)
- DBMS_JOB
- Web部署一(目录机构以及Url-pattern)
- MYSQL修改密码的几种方式
- flask 静态文件 模版
- Android Accessibility && Parcel和AIDL && Intent传递对象的两种方法(Serializable,Parcelable)
- 【Redis】向优秀代码学习:Redis 源码概览
- Android 开发必读
- C/C++输入,输出汇总