POJ 2398 排序+叉积判断点与直线位置关系+统计
来源:互联网 发布:索尼网络经销商 编辑:程序博客网 时间:2024/06/06 20:02
题目与POJ2318基本一样
不同之处是需要对直线位置从左到右(按照平面直角坐标系的习惯)进行排序,最后对结果进行统计即可
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define maxn 1000+10struct point{ int x,y;};struct Line{ point a,b; };int n;int ans[maxn];int cnt[maxn];Line line[maxn];using namespace std;void output(){ cout<<"Box"<<endl; for(int i=0;i<=n;i++) { if(ans[i]!=0) cnt[ans[i]]++; } for(int i=0;i<=n;i++) { if(cnt[i]!=0) printf("%d: %d\n",i,cnt[i]); }}bool cmp(Line l1,Line l2){ if(l1.a.x<l2.a.x && l1.b.x<l2.b.x) return true; else return false;}int cross(point p0,point p1,point p2){ return (p0.x-p2.x)*(p1.y-p2.y)-(p1.x-p2.x)*(p0.y-p2.y);}void search(point toy){ for(int i=0;i<=n;i++) { if(cross(toy,line[i].a,line[i].b)>0 && cross(toy,line[i+1].a,line[i+1].b)<0) ans[i]++; }}int main(){ int m,x1,y1,x2,y2; int u,l,xj,yj; point toy; while(scanf("%d",&n) && n!=0) { memset(ans,0,sizeof(ans)); memset(cnt,0,sizeof(cnt)); scanf("%d%d%d%d%d",&m,&x1,&y1,&x2,&y2); line[0].a.x=x1; line[0].a.y=y1; line[0].b.x=x1;line[0].b.y=y2; line[n+1].a.x=x2; line[n+1].a.y=y1; line[n+1].b.x=x2; line[n+1].b.y=y2; for(int i=1;i<=n;i++) { scanf("%d%d",&u,&l); line[i].a.x=u; line[i].a.y=y1; line[i].b.x=l; line[i].b.y=y2; } sort(line+1,line+n+1,cmp); for(int i=0;i<m;i++) { scanf("%d%d",&xj,&yj); toy.x=xj; toy.y=yj; search(toy); } /* for(int i=0;i<=n;i++) printf("%d: %d\n",i,ans[i]); cout<<endl;*/ output(); }}
0 0
- POJ 2398 排序+叉积判断点与直线位置关系+统计
- POJ 2398 Toy Storage (判断点与直线关系+排序二分计数)
- poj2398Toy Storage【判断直线与点位置关系+排序+二分查找】
- POJ 2318 TOYS + POJ 2398 Toy Storage (点与直线的位置关系)
- POJ2318 叉积判断点与直线的关系
- POJ 2318 TOYS (判断点与直线关系+二分查找)
- POJ 1269 直线位置关系的判断
- POJ 2318 TOYS(叉积判断点与线段的位置关系)
- poj 2398 叉积判断点位置
- 判断一个点与直线的位置
- poj2318TOYS【二分+点与直线位置判断】
- poj 2318 TOYS (点与线段位置关系判断)
- POJ 2398 Toy Storage(点与直线关系 + 二分)
- POJ1269_Intersecting Lines(几何/叉积判断直线位置关系)
- POJ 2318 TOYS(计算几何+点与直线位置关系+二分)
- poj 2318 直线和点位置关系(二分查找)
- POJ 1269 Intersecting Lines(判断直线的位置关系)
- poj 1269 Intersecting Lines 判断直线的位置关系
- Redhat Linux 7 firewalld
- 3205: [Apio2013]机器人
- LearnOpenGL学习笔记6:坐标
- css 浮动及定位
- 在mac10.115上安装laravel的历程
- POJ 2398 排序+叉积判断点与直线位置关系+统计
- 《图数据库》(人民邮电出版社)读书笔记三
- hihocoder #1363 : 图像算子(高斯消元)
- 前端攻城狮知识体系
- 恭喜自己,继续努力
- Android Studio调用百度语音识别API
- css 层级 脱标流 可见性
- Spring 依赖注入(DI)
- .properties 文件