POJ 2398 Toy Storage
这道题和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相关推荐
- poj 2318 TOYS amp; poj 2398 Toy Storage (叉积)
链接:poj 2318 题意:有一个矩形盒子,盒子里有一些木块线段.而且这些线段坐标是依照顺序给出的. 有n条线段,把盒子分层了n+1个区域,然后有m个玩具.这m个玩具的坐标是已知的,问最后每一个区域 ...
- poj 2398 Toy Storage (计算几何,判断点和线段关系)
http://poj.org/problem?id=2398 题意大概是说将一个盒子用n个board分成n+1 部分 然后往里面放toy,给定盒子,board,和toy的坐标 问所有的toy放完后,有 ...
- 计算区域中有t 个点的 区域有多少个+计算几何 + 叉乘+sort+ 二分 + map poj 2398 Toy Storage...
题目来源:http://poj.org/problem?id=2398 分析: 计算区域中有t 个点的 区域有多少个. #include <cstdlib> #include <cs ...
- 【POJ - 2398】Toy Storage (计算几何,二分找位置,叉积,点和直线的位置关系)
题干: Mom and dad have a problem: their child, Reza, never puts his toys away when he is finished play ...
- POJ 计算几何专项训练(1) 【2318】【2398】【3304】【2653】【1556】【1066】...
POJ 2318 TOYS 题意是在一个大矩形里有n条分割线把矩形分割成n+1部分.再给出一些玩具的坐标.要求统计每个部分内有多少个玩具. 具体做法就是二分求解出当前玩具右方的第一条线.这可以用叉积判 ...
- POJ 计算几何入门题目推荐
其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专 ...
- [Z]POJ 计算几何入门题目推荐[转PKKJ]
http://www.cnblogs.com/eric-blog/archive/2011/05/31/2064785.html http://hi.baidu.com/novosbirsk/blog ...
- poj计算几何题推荐
POJ 计算几何入门题目推荐(转) 其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的 ...
- poj 计算几何 分类
转自novosbirsk的空间,上面还有很多有用的东西. 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组 ...
最新文章
- java regexp_java中使用regexp
- 【前端Talkking】CSS系列-css3之box-shadow介绍
- u-boot2013.01.01 for s5pv210: u-boot启动流程
- 湖南大学计算机系统原理实验,湖南大学-计算机组成原理实验-实验3-bomblab_图文.pdf...
- mysql5.7.23主主重制_MySQL-23(主从复制)
- 最近ubuntu+gpu装机记录
- ssma迁移助手_如何使用SQL Server迁移助手(SSMA)和SSIS将MySQL表迁移到SQL Server
- 【文献阅读】Self-Normalizing Neural Networks
- Ubuntu安装完后设置root密码-转
- English Through Movie
- Silverlight中动画的性能浅析
- runloop的mode作用是什么?
- matlab 平滑曲线连接_从零开始的matlab学习笔记——(16)函数绘图
- mysql备份方式工具详解
- 深圳市坪山区制造业高质量发展资金申报条件及时间,补贴高达1亿
- 如何创建unity的菜单栏和窗口
- win7中设置保护眼睛的绿豆沙色
- nslookup命令反解ip_桌面运维常用命令
- Meta R-CNN : Towards General Solver for Instance-level Low-shot Learning 论文笔记
- GetMessage() 函数用法
热门文章
- exe打包工具哪个最好_为你的 Python 程序写个启动工具箱
- 【音视频安卓开发 (八)】OpenSLES播放音频步骤和接口讲解
- oracle的连接函数,Oracle各种连接函数总结
- oracle42997,oracle与db2的比较
- 视频编解码器常见问题介绍
- [渝粤教育] 西南科技大学 数控机床与编程 在线考试复习资料
- 2006 mysql_MySQL 2006 超时
- java快速排序算法_JAVA版排序算法之快速排序示例
- 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
- 中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现