题意:同POJ2318

#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
struct point {int x, y;
};
struct Node {point Low, High;
}line[5010];int Num[5010];
int par[5010];
bool cmp(Node A, Node B) {return A.High.x < B.High.x;
}bool is_right(int x, int y, Node ln) {point P = ln.High;point Q = ln.Low;if (((P.x - x)*(Q.y - y) - (P.y - y)*(Q.x - x)) > 0)return true;elsereturn false;
}void bin_seach(int x, int y, int n) {int left = 1;int right = n;while (left <= right) {int mid = (left + right) / 2;if (is_right(x, y, line[mid])) {left = mid + 1;}else {right = mid - 1;}}par[left]++;}
int main() {int n, m, i, j, x1, x2, y1, y2;while (scanf("%d", &n), n) {memset(par, 0, sizeof(par));memset(Num, 0, sizeof(Num));scanf("%d%d%d%d%d", &m, &x1, &y1, &x2, &y2);for (int i = 1; i <= n; i++) {scanf("%d", &line[i].High.x);line[i].High.y = y1;scanf("%d", &line[i].Low.x);line[i].Low.y = y2;}sort(line + 1, line + 1 + n, cmp);int xx, yy;int t = m;while (m--) {scanf("%d%d", &xx, &yy);bin_seach(xx, yy, n);}for (int i = 1; i <= n + 1; i++) {if (par[i])Num[par[i]]++;}printf("Box\n");for (int i = 1; i <= t; i++) {if (Num[i])printf("%d: %d\n", i, Num[i]);}}return 0;
}

转载于:https://www.cnblogs.com/tennant/p/8758580.html

POJ2398【判断点在直线哪一侧+二分查找区间】相关推荐

  1. python判断点在直线的哪一侧_判断点在直线的一侧

    方法1: 已知P(0,0),Q(3,2)两点,试判断P,Q是否在直线2x+3y=4的同一侧. 解:直线2x+3y=4 即直线2x+3y-4=0 把P.Q代入2x+3y-4得到 2*0+3*0-4=-4 ...

  2. 折半查找的思想及源码_二分查找及对应的几道经典题目

    二分查找(Binary Search)属于七大查找算法之一,又称折半查找,它的名字很好的体现出了它的基本思想,二分查找主要是针对的是有序存储的数据集合. 假设有一个集合和一个待查找的目标值,每次都通过 ...

  3. day 1 | 704. 二分查找、27. 移除元素

    目录: 学习链接 题目链接: https://leetcode.cn/problems/binary-search/ https://leetcode.cn/problems/remove-eleme ...

  4. 今天会是有offer的一天么:面试时你真的会写二分查找么

    二分查找是一种非常常见的算法,在面试时会经常被问到.其输入是一个有序的数组,输出需要查找数字的下标(注意输入一定是有序的). 先说一下最基本的,有序数组中没有重复的元素. public class b ...

  5. 二分查找——部分题目汇总——长长文详细分享

    文章目录 前言 二分查找 第一题:二分查找 解题思路 GIF 代码 第二题:搜索插入位置 解题思路 代码 第三题:寻找旋转排序数组中的最小值 解题思路 代码 第四题:寻找峰值 解题思路 代码 第五题: ...

  6. leetcode - LCP 42. 玩具套圈 -二分 -坐标映射 -区间查找 - 坐标范围快速查找

    文章目录 解法1 - 给定圈,找套中的玩具 - 超时 解法 2 - 给定玩具找能套中它的圈 - 超时 解法 3 解法2的基础上加入 二分查找区间 - 通过 解法4 - 解法2的基础上 映射x的同时映射 ...

  7. AcWing 2983. 玩具 / POJ 2318.toys(计算几何基础、二分、判断点和直线的位置关系)

    计算几何基础题 题目大意就是一个盒子被分成了若干个区域,有m个小球,问每个区域里分别有多少个小球. 我们首先考虑暴力. 我们如何判断小球是否在一个区域内呢,我们发现一个小球在区域x,也就是说所有小于x ...

  8. 判断点和直线的位置关系

    ```csharp/// <summary>/// 判断点和直线的位置关系/// </summary>/// <param name="LinePntA&quo ...

  9. 判断点在直线的左侧和右侧的方法及原理

    应用场景: 1.判断某一个点是否在线的指定的一侧. 2.判断一个点在线的左侧还是右侧. 给定的条件:三个点(最原始的数据) 已知三个点,a = (px,py),b=(qx,qy),c = (lx,ly ...

最新文章

  1. 超强实操!手把手教学Kinect深度图与RGB摄像头的标定与配准
  2. mac for docker访问宿主机服务
  3. Spring IOC 之 加载 Bean
  4. Java课程设计——坦克大战
  5. 替换IP java代码
  6. cocos2dx-Lua与Object的通讯机制
  7. php删除菜单栏,如何删除WordPress站点健康状态面板和菜单项
  8. java注意的一些细节问题
  9. 图像处理(二十四)Gradient Domain High Dynamic Range Compression学习笔记
  10. 计算机组成原理「一」计算机系统概述
  11. linux ls-la/boot,CentOS系统启动/boot/vmlinuz修复(实验)
  12. md5 java_JAVA使用MD5加密解密
  13. 计算机一级IF函数应用,计算机一级if函数怎么用
  14. 以树莓派为控制中心的软硬件之开发之脑电波模块
  15. access查询两列信息合并输出_如何在Access中合并两个数据表中的数据
  16. mysql基本数据类型、笔试题(2018-9-10)
  17. Wps二次开发(POI)
  18. DevOps有“政治倾向性”
  19. 练习1-自定义input组件库知识要点
  20. 上海为什么更需要“自贸区”?

热门文章

  1. mysql 5.0.37.tar.gz_Linux下MySQL5.0.37安装配置步骤
  2. 宝塔设置thinkphp的伪静态_宝塔面板与WDCP狭路相逢,谁才是国产之光?
  3. datagridview设置为勾选才可编辑_使用lightroom前,做好这几项设置,有助于更好使用...
  4. mac os touch命令_Mac系统忘记开机密码怎么办?
  5. ❤️六W字《计算机基础知识》(六)(建议收藏)❤️
  6. 《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七》
  7. 计算机回收站怎么设计无法删除,电脑回收站中ai文件删不掉如何解决? ai文件在回收站删不掉的解决办法...
  8. 登陆 manager app显示不是私密链接_小米上线了一款靠指静脉识别开锁的私密箱,打造你的私人存储空间...
  9. mysql用户如何迁移_迁移MySQL用户及权限
  10. scaling之旅_机器学习算法之旅 - lwaif的个人空间 - OSCHINA - 中文开源技术交流社区...