博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2318 TOYS(点与直线的关系 叉积&&二分)
阅读量:7123 次
发布时间:2019-06-28

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

题意:

给定一个矩形,n个线段将矩形分成n+1个区间,m个点,问这些点的分布。

题解:

思路就是叉积加二分,利用叉积判断点与直线的距离,二分搜索区间。

代码:

最近整理了STL的一些模板,发现真是好用啊orz,为啥以前没发现呢,可能是比较懒吧-.-

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(arr,num) memset(arr,0,sizeof(arr))#define _for(i, a, b) for(int i = a; i <= b; i++)#define __for(i, a, b) for(int i = a; i >=b; i--)using namespace std;typedef long long ll;const ll INF = 0x3f3f3f3f;const int N = 5000+5;struct P{ int x,y; P() {} P(int a, int b) { x = a, y = b; } P operator- (P b) { return P(x-b.x,y-b.y); }} L,R,p[N];pair
pr;vector
> line;double cross(P a, P b) { return a.x * b.y - a.y * b.x;}double judge(P c, P a, P b){ return cross(c - a,b - a);}int res[N];int main(){ int n, m; while(cin >> n, n) { mem(res,0); line.clear(); cin >> m >> L.x >> L.y >> R.x >> R.y; pr.second = L; pr.first.x = L.x, pr.first.y = R.y; line.push_back(pr); _for(i, 1, n) { int a, b; P p; cin >> a >> b; p.x = a, p.y = L.y; pr.second = p; p.x = b, p.y = R.y; pr.first = p; line.push_back(pr); } pr.second.x = R.x, pr.second.y = L.y; pr.first = R; line.push_back(pr); _for(i, 1, m) cin >> p[i].x >> p[i].y; _for(i, 1, m) { int l = 0, r = line.size()-1,mid; while(r - l != 1){ mid = (l+r)/2; P _x = line[mid].first,_y = line[mid].second; if(judge(p[i], _x, _y)<0) r = mid; else l = mid; } res[l] ++; } _for(i, 0, n) cout << i <<": "<< res[i] <

 

转载于:https://www.cnblogs.com/GHzz/p/8783291.html

你可能感兴趣的文章
windows 操作系统原版下载地址
查看>>
剑指offer——O(1)时间删除单链表节点
查看>>
OSPF在企业网络中的应用
查看>>
什么是NIO(转载)
查看>>
第五课 SCCM2012通过OSD功能实现操作系统部署(上)
查看>>
易宝典文章——用ISA 2006标准版发布Exchange 2010的OWA系列之生成Exchange证书申请文件...
查看>>
shell 读取键盘输入
查看>>
Linux静态库和动态库
查看>>
Spring中管理Bean依赖注入之后和Bean销毁之前的行为
查看>>
vmware 虚拟机网络
查看>>
JAVA基本程序设计结构
查看>>
UNIX 高手的 10 个习惯
查看>>
Basics of Memory Addresses in C
查看>>
加密解密
查看>>
AIX 卷组管理
查看>>
vsftpd基于本地用户和mysql认证配置
查看>>
动态代理简单测试
查看>>
Linux下切分Tomcat的catalina.out日志文件
查看>>
XSS***的介绍及防御
查看>>
《冈仁波齐》让我看到的不止是信仰,还有不忘初心
查看>>