POJ 2318 TOYS 计算几何 入门题 叉积 + 二分
来源:互联网 发布:手机淘宝里输入链接 编辑:程序博客网 时间:2024/05/16 11:31
第一题计算几何,1A,好开心哦。
View Code
#include<stdio.h>#include<string.h>#include<math.h>struct point{ int x, y;};int up[5007],down[5007];;int n, m;point toy[5007];point a, b;int ans[5007];int cross(point o, point a, point b){ return ((a.x-o.x)*(b.y-o.y)-(a.y-o.y)*(b.x-o.x));}int find(point key){ int l , r, mid; l = 0; r = n+1; point upp, downn; upp.y = a.y; downn.y = b. y; while(l <= r) { mid = (l + r) >> 1; upp.x = up[mid]; downn.x = down[mid]; if(cross(downn, upp, key) > 0 ) r = mid - 1; else l = mid + 1; } return l;}int main(){ int i, j; while( ~scanf("%d", &n) && n) { scanf("%d", &m); scanf("%d%d%d%d",&a.x, &a.y, &b.x, &b.y); up[0] = down[0] = a.x; up[n+1] = down[n+1] = b.x; for(i = 1; i <= n; i++) scanf("%d%d",&up[i], &down[i]); memset(ans, 0, sizeof(ans)); for(i=1;i<=m;i++) { scanf("%d%d", &toy[i].x, &toy[i].y); int index = find(toy[i]); ans[index-1]++; } for(i=0;i<=n;i++) printf("%d: %d\n",i, ans[i]); printf("\n"); } 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 2318 TOYS (计算几何)
- 计算几何--POJ--2318--TOYS
- POJ 2318 TOYS <计算几何>
- poj2318 TOYS(计算几何+叉积+二分)
- poj 2318 TOYS(计算几何)
- poj 2318 TOYS(计算几何:求叉积)
- POJ 2318 TOYS(计算几何)
- POJ 2318 TOYS 计算几何 线段相交
- HDU 1561 The more, The Better 树形DP(0-1背包)
- POJ 2923 Relocation 状态压缩DP + 0-1背包
- POJ 1155 TELE 树形DP(0-1背包)
- POJ 3093 Margaritas on the River Walk 0-1背包好题
- 【转】 POJ计算几何
- POJ 2318 TOYS 计算几何 入门题 叉积 + 二分
- POJ 2398 Toy Storage POJ2318提高版入门题
- POJ 3304 Segment 直线与线段相交 + 枚举
- POJ 1269 Intersecting Lines 判断直线关系(相交(求交点),重合,平行)
- Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证
- jquery对象和DOM对象的相互转换
- POJ 1556 The Doors 最短路floyd + 判断两线段相交
- POJ 2653 Pick-up sticks 枚举 + 判断两线段规范相交
- oracle 查询语句后面的where条件为null就不需要