POJ 2318 / 2389 几何入门题
来源:互联网 发布:nagle算法作用 编辑:程序博客网 时间:2024/05/17 22:56
题目链接: POJ 2318 TOYS
POJ 2398 Toy Storage
代码:
POJ 2318
#include <stdio.h>#include <cstring>#include <iostream>using namespace std;const int maxn=5555;double x1,x2,y1,y2;int n,m;struct point { double x,y; void read(double a,double b){ x=a; y=b; }};struct segment { point a, b; void read(double c,double d){ a.read(c,y1); b.read(d,y2); }}L[maxn];int num[maxn];double cross(point A,point B,point C){ return (B.x-A.x)*(C.y-A.y)-(C.x-A.x)*(B.y-A.y);}int main(){ while(~scanf("%d",&n)&&n){ memset(num,0,sizeof(num)); scanf("%d%lf%lf%lf%lf",&m,&x1,&y1,&x2,&y2); for(int i=1;i<=n;++i){ double c,d; scanf("%lf%lf",&c,&d); L[i].read(c,d); } while(m--){ double u,v; scanf("%lf%lf",&u,&v); point p; p.read(u,v); if(u<x1||u>x2||v<y2||v>y1) continue; ///дкЧјгђЭт int i=1; while(i<=n){ double s=cross(L[i].b, p, L[i].a); if(s<0)break; ++i; } num[i-1]++; } for(int i=0;i<=n;++i) printf("%d: %d\n",i,num[i]); puts(""); } return 0;}
POJ 2389
#include <stdio.h>#include <cstring>#include <iostream>#include<algorithm>using namespace std;const int maxn=5555;double x1,x2,y1,y2;int n,m;struct point { double x,y; void read(double a,double b){ x=a; y=b; }};struct segment { point a, b; void read(double c,double d){ a.read(c,y1); b.read(d,y2); }}L[maxn];int num[maxn],ans[maxn];bool cmp(segment s1, segment s2){ return s1.a.x<s2.a.x;}double cross(point A,point B,point C){ return (B.x-A.x)*(C.y-A.y)-(C.x-A.x)*(B.y-A.y);}int main(){ while(~scanf("%d",&n)&&n){ memset(num,0,sizeof(num)); scanf("%d%lf%lf%lf%lf",&m,&x1,&y1,&x2,&y2); for(int i=1;i<=n;++i){ double c,d; scanf("%lf%lf",&c,&d); L[i].read(c,d); } sort(L+1,L+n+1,cmp); while(m--){ double u,v; scanf("%lf%lf",&u,&v); point p; p.read(u,v); if(u<x1||u>x2||v<y2||v>y1) continue; ///дкЧјгђЭт int i=1; while(i<=n){ double s=cross(L[i].b, p, L[i].a); if(s<0)break; ++i; } num[i-1]++; } sort(num,num+n+1); puts("Box"); int i=0; while(num[i]==0)++i; int c=num[i],k=0; for( ;i<=n+1;++i){ if(i==n+1||num[i]!=c){ printf("%d: %d\n",c,k); k=1; c=num[i]; if(c==0) break; } else ++k; } } return 0;}
- POJ 2318 / 2389 几何入门题
- POJ 2318 TOYS 计算几何 入门题 叉积 + 二分
- POJ 2318 TOYS(计算几何入门)
- POJ上几何入门题推荐
- 【计算几何入门】poj 1269
- poj 1127 计算几何入门题 求线段交点
- poj 2932 计算几何入门题 平面扫描
- poj 2187 计算几何入门题 凸包
- POJ 2318 计算几何 叉积水题
- POJ 2318 TOYS 几何题 基础
- POJ 2318 计算几何大水题
- POJ 2318 TOYS(几何)
- 【几何】-POJ-2318-Toys
- POJ 2318 几何二分
- POJ 2318(计算几何 )
- POJ 2318 几何 POJ 2398
- 【计算几何】POJ 计算几何入门题目推荐
- POJ 计算几何入门题目推荐
- day1 手癌菜鸟相应源码 02
- 基本动画的实现
- PHP中的串行化变量和序列化对象
- 数据库系统范式
- tonardo做web服务器播放大视频内存泄露问题的解决
- POJ 2318 / 2389 几何入门题
- webRTC 网关技术点分析
- 用HTML5绘制骰子
- oracle 11g rac 安装报错 CRS-2500
- [leetcode刷题系列]Rotate Image
- 在Eclipse中跑b3log的设置
- Problem 11:Largest product in a grid
- 关于静态变量“赋值无效问题”的探讨结果
- Google-ProtoBuf数据编码