POJ 2398 叉积应用
来源:互联网 发布:js !什么意思 编辑:程序博客网 时间:2024/06/06 12:22
【题目大意】:给出一个矩形的左上角的点(x1,y1)以及右下角的点(x2,y2),并给出n条线段,线段表示为(l,y1),(r,y2),用于将矩形切割成n+1块,分别标记为0到n。再给出m个点,求包含t(t>0)个点的有几块。
【解题思路】:已知给出三个点a,b,c,通过叉积可以判断c在线段a,b的哪一侧,若叉积小于0,则在线段左侧,等于0,三点共线,大于0,
找出每条线段i的左侧有a[i]个点 线段 i 到 i+1中间就有 a[i+1] - a[i]个点
#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const int m_max=1005;const int n_max=1005;int number[m_max];int mt[n_max];struct point{double x,y;void init(double xx,double yy){x=xx;y=yy;}}p[m_max],w[n_max][2];void init(){memset(number,0,sizeof(number));}double det(point a,point b,point c){double x1=b.x-a.x;double y1=b.y-a.y;double x2=c.x-a.x;double y2=c.y-a.y;return x1*y2-x2*y1;}int main(){int n,m;double x1,x2,y1,y2;while(~scanf("%d",&n),n){scanf("%d%lf%lf%lf%lf",&m,&x1,&y1,&x2,&y2);init();w[0][0].init(x1,y2);w[0][1].init(x1,y1);w[n+1][0].init(x2,y2);w[n+1][1].init(x2,y1);int i,j;for(i=1;i<=n;i++){scanf("%lf%lf",&x1,&x2);w[i][0].init(x2,y2);w[i][1].init(x1,y1);}for(j=1;j<=m;j++){scanf("%lf%lf",&x1,&y1);p[j].init(x1,y1);}int t=0;int nmt=0;for(i=0;i<=n+1;i++){t=0;for(j=1;j<=m;j++){if(det(w[i][0],w[i][1],p[j])>0){t++;}}mt[nmt++]=t;}sort(mt,mt+nmt);for(i=1;i<nmt;i++){number[mt[i]-mt[i-1]]++;}printf("Box\n");for(i=1;i<=m;i++){if(number[i]){printf("%d: %d\n",i,number[i]);}}}return 0;}
- POJ 2398 叉积应用
- POJ 2398 Toy Storage(叉积的简单应用)
- poj 2318 TOYS(叉积的应用)
- POJ 2318 TOYS 叉积应用
- poj 2318 叉积的应用+二分
- POJ 2318TOYS 叉积的应用
- POJ 1106 Transmitters 几何(叉积应用)
- poj 1696 Space Ant(叉积的应用)
- ACM练级日志:POJ 2318 叉积的简单应用
- POJ 1696 Space Ant 计算几何 叉积的应用
- poj(2318)——TOYS(叉积的简单应用)
- 【叉积性质】POJ 2318 TOYS && POJ 2398 Toy Storage
- POJ 1696 Space Ant 类似凸包问题(叉积的应用)
- POJ 1847 Floyd应用
- POJ 1847 Dijkstra应用
- poj 3417(LCA应用)
- poj 3368(RMQ应用)
- poj 2406 KMP应用
- hdu 2035
- 页面顶端固定div,不随滚动条移动,提示浏览器信息
- ora-01652无法通过128(在表空间temp中)扩展temp段
- sql去除重复语句
- open-fopen read-fread等的不同 .
- POJ 2398 叉积应用
- 【转】数据库的事务,范式,处理,并发控制
- 用hibernate架构实现存储图片
- Oracle 动态行转列
- 编写字符串反转函数 .
- JavaScript之JSON详解
- 爱我输不起:最新伤感QQ空间日志
- Layout Manager with JQuery
- Eclipse代码提示功能的扩展(输入首字母就提示)