POJ 2318 TOYS (点与线段关系)
来源:互联网 发布:中级程序员考证培训费 编辑:程序博客网 时间:2024/06/06 09:18
一个玩具箱被n个挡板分成n+1快,挡板不会互相交叉。将m个玩具扔进去,求分别被扔进了哪个区域。
主要算法就是判断点与线段的关系,排序后从左往右依此判别即可。
//Memory: 480K//Time: 485MS#include <iostream>#include <math.h>#include <algorithm>using namespace std;struct POINT//点{double x,y;POINT():x(0),y(0){}; POINT(double _x, double _y):x(_x),y(_y){};};struct LINESEG//线段{ POINT s; POINT e; LINESEG(POINT a, POINT b) { s=a; e=b;} LINESEG() { } };double relation_lr(POINT p,LINESEG l) //return<0 p在l左侧 return>0 p在l右侧{double a,b,c;a=l.e.y-l.s.y;b=l.s.x-l.e.x;c=l.e.x*l.s.y-l.s.x*l.e.y;return (a*p.x+b*p.y+c);} bool cmpl(LINESEG l1,LINESEG l2){if(l1.s.x==l2.s.x)return l1.e.x<l2.e.x;return l1.s.x<l2.s.x;}bool cmpp(POINT p1,POINT p2){return p1.x<p2.x;}int main(){POINT p[5005];LINESEG l[5005];double x1,y1,x2,y2;int n,m;int num[5005];int flag=true;while(cin>>n && n){cin>>m>>x1>>y1>>x2>>y2;l[0].s.x=l[0].e.x=x1;l[0].s.y=l[n+1].s.y=y2;l[0].e.y=l[n+1].e.y=y1;l[n+1].s.x=l[n+1].e.x=x2;int i,j;for(i=0;i<=n;i++)num[i]=0;for(i=1;i<=n;i++){cin>>l[i].e.x>>l[i].s.x;l[i].e.y=y1;l[i].s.y=y2;}for(i=1;i<=m;i++)cin>>p[i].x>>p[i].y;sort(l,l+n+1,cmpl);sort(p+1,p+m+1,cmpp);i=0;j=1;while(i<=n){if(relation_lr(p[j],l[i+1])>0){i++;}else if(relation_lr(p[j],l[i])>0){num[i]++;j++;}else if(relation_lr(p[j],l[i])<0){i--;}if(j>m)break;}if(!flag)cout<<endl;for(i=0;i<=n;i++)cout<<i<<": "<<num[i]<<endl; flag=false;}return 0;}
- POJ 2318 TOYS (点与线段关系)
- poj 2318 TOYS (点与线段位置关系判断)
- poj 2318 TOYS(判点与线段的关系)
- POJ 2318 TOYS 判断点和线段的关系
- POJ 2318 TOYS (矩形内判断点与线段关系,水)
- POJ 2318 TOYS(叉积判断点与线段的位置关系)
- POJ 2318 TOYS 计算几何(点与直线关系)
- POJ 2318 TOYS(点与凸多边形的位置关系)
- POJ 2318 TOYS (判断点与直线关系+二分查找)
- POJ 2318 TOYS + POJ 2398 Toy Storage (点与直线的位置关系)
- poj 题目2318 TOYS (计算几何,点与边的关系)
- POJ 2318 TOYS(计算几何+点与直线位置关系+二分)
- POJ--2318 -- TOYS [点、线基本关系] [计算几何]
- POJ 2318 TOYS 计算几何 线段相交
- POJ 2318 TOYS 【二分】【点线关系】
- poj 2318 TOYS(计算几何 点跟直线的位置关系)
- POJ 2398 Toy Storage (判断点与线段关系)
- poj 2318 TOYS--点在直线左侧还是右侧
- 求三个字符串的长度,并输出最长值和最短值及其长度
- 数据库的逻辑层类,用一个基类进行实现
- power Designer VBS 脚步 通过 excel 生成实体,不用一个一个的输入。
- 音频处理领域的瑞士军刀──SoX
- poj 2185(流的最小费用的充要条件)消负圈
- POJ 2318 TOYS (点与线段关系)
- Java、Tomcat、Android环境变量配置
- 具体的数据库操作类,Model类和DB类
- Pseudoclasses :first-child and :last-child for IE6
- Host XXX is blocked because of many connection errors
- SQL Server中的视图和查询语句的异同
- 有用的:nth-child秘方
- Oracle数据库监听配置
- poj1947(树形dp)