这道题和POJ 2318几乎是一样的。

区别就是输入中坐标不给排序了,=_=||

输出变成了,有多少个区域中有t个点。

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6
 7 struct Point
 8 {
 9     int x, y;
10     Point(int x=0, int y=0):x(x), y(y) {}
11 };
12 typedef Point Vector;
13
14 Point read_point()
15 {
16     int x, y;
17     scanf("%d%d", &x, &y);
18     return Point(x, y);
19 }
20
21 Point operator + (const Point& A, const Point& B)
22 { return Point(A.x+B.x, A.y+B.y); }
23
24 Point operator - (const Point& A, const Point& B)
25 { return Point(A.x-B.x, A.y-B.y); }
26
27 int Cross(const Point& A, const Point& B)
28 { return A.x*B.y - A.y*B.x; }
29
30 const int maxn = 5000 + 10;
31 int up[maxn], down[maxn], ans[maxn];
32 int n, m;
33 Point A0, B0;
34
35 int binary_search(const Point& P)
36 {
37     int L = 0, R = n;
38     while(L < R)
39     {
40         int mid = L + (R - L + 1) / 2;
41         Point A(down[mid], B0.y), B(up[mid], A0.y);
42         Vector v1 = B - A;
43         Vector v2 = P - A;
44         if(Cross(v1, v2) < 0) L = mid;
45         else R = mid - 1;
46     }
47     return L;
48 }
49
50 int main()
51 {
52     //freopen("in.txt", "r", stdin);
53
54     while(scanf("%d", &n) == 1 && n)
55     {
56         memset(ans, 0, sizeof(ans));
57
58         scanf("%d", &m); A0 = read_point(); B0 = read_point();
59         for(int i = 1; i <= n; ++i) scanf("%d%d", &up[i], &down[i]);
60         sort(up + 1, up + 1 + n); sort(down + 1, down + 1 + n);
61         for(int i = 0; i < m; ++i)
62         {
63             Point P; P = read_point();
64             int pos = binary_search(P);
65             ans[pos]++;
66         }
67         sort(ans, ans + n + 1);
68
69         puts("Box");
70         int i;
71         for(i = 0; i <= n; ++i) if(ans[i]) break;
72         while(i <= n)
73         {
74             int cnt = 1;
75             int num = ans[i];
76             while(i <= n && ans[i+1] == ans[i]) { i++; cnt++; }
77             i++;
78             printf("%d: %d\n", num, cnt);
79         }
80     }
81
82     return 0;
83 }

代码君

转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4267393.html

POJ 2398 Toy Storage相关推荐

  1. poj 2318 TOYS amp; poj 2398 Toy Storage (叉积)

    链接:poj 2318 题意:有一个矩形盒子,盒子里有一些木块线段.而且这些线段坐标是依照顺序给出的. 有n条线段,把盒子分层了n+1个区域,然后有m个玩具.这m个玩具的坐标是已知的,问最后每一个区域 ...

  2. poj 2398 Toy Storage (计算几何,判断点和线段关系)

    http://poj.org/problem?id=2398 题意大概是说将一个盒子用n个board分成n+1 部分 然后往里面放toy,给定盒子,board,和toy的坐标 问所有的toy放完后,有 ...

  3. 计算区域中有t 个点的 区域有多少个+计算几何 + 叉乘+sort+ 二分 + map poj 2398 Toy Storage...

    题目来源:http://poj.org/problem?id=2398 分析: 计算区域中有t 个点的 区域有多少个. #include <cstdlib> #include <cs ...

  4. 【POJ - 2398】Toy Storage (计算几何,二分找位置,叉积,点和直线的位置关系)

    题干: Mom and dad have a problem: their child, Reza, never puts his toys away when he is finished play ...

  5. POJ 计算几何专项训练(1) 【2318】【2398】【3304】【2653】【1556】【1066】...

    POJ 2318 TOYS 题意是在一个大矩形里有n条分割线把矩形分割成n+1部分.再给出一些玩具的坐标.要求统计每个部分内有多少个玩具. 具体做法就是二分求解出当前玩具右方的第一条线.这可以用叉积判 ...

  6. POJ 计算几何入门题目推荐

      其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专 ...

  7. [Z]POJ 计算几何入门题目推荐[转PKKJ]

    http://www.cnblogs.com/eric-blog/archive/2011/05/31/2064785.html http://hi.baidu.com/novosbirsk/blog ...

  8. poj计算几何题推荐

    POJ 计算几何入门题目推荐(转)       其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的 ...

  9. poj 计算几何 分类

    转自novosbirsk的空间,上面还有很多有用的东西. 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组 ...

最新文章

  1. java regexp_java中使用regexp
  2. 【前端Talkking】CSS系列-css3之box-shadow介绍
  3. u-boot2013.01.01 for s5pv210: u-boot启动流程
  4. 湖南大学计算机系统原理实验,湖南大学-计算机组成原理实验-实验3-bomblab_图文.pdf...
  5. mysql5.7.23主主重制_MySQL-23(主从复制)
  6. 最近ubuntu+gpu装机记录
  7. ssma迁移助手_如何使用SQL Server迁移助手(SSMA)和SSIS将MySQL表迁移到SQL Server
  8. 【文献阅读】Self-Normalizing Neural Networks
  9. Ubuntu安装完后设置root密码-转
  10. English Through Movie
  11. Silverlight中动画的性能浅析
  12. runloop的mode作用是什么?
  13. matlab 平滑曲线连接_从零开始的matlab学习笔记——(16)函数绘图
  14. mysql备份方式工具详解
  15. 深圳市坪山区制造业高质量发展资金申报条件及时间,补贴高达1亿
  16. 如何创建unity的菜单栏和窗口
  17. win7中设置保护眼睛的绿豆沙色
  18. nslookup命令反解ip_桌面运维常用命令
  19. Meta R-CNN : Towards General Solver for Instance-level Low-shot Learning 论文笔记
  20. GetMessage() 函数用法

热门文章

  1. exe打包工具哪个最好_为你的 Python 程序写个启动工具箱
  2. 【音视频安卓开发 (八)】OpenSLES播放音频步骤和接口讲解
  3. oracle的连接函数,Oracle各种连接函数总结
  4. oracle42997,oracle与db2的比较
  5. 视频编解码器常见问题介绍
  6. [渝粤教育] 西南科技大学 数控机床与编程 在线考试复习资料
  7. 2006 mysql_MySQL 2006 超时
  8. java快速排序算法_JAVA版排序算法之快速排序示例
  9. 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
  10. 中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现