Toy Storage
题型与2318 TOYS一样,注意要对线段排序,现在模板又更新了~~
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<string.h>
- #include<algorithm>
- #include<map>
- #include<queue>
- #include<vector>
- #include<cmath>
- #include<stdlib.h>
- #include<time.h>
- using namespace std;
- #define MS0(a) memset(a,0,sizeof(a))
- const int MAXN = ;
- struct point{
- int x,y;
- point(){}
- point(int _x,int _y){
- x = _x; y = _y;
- }
- long long operator *(const point &b)const{// 点向量叉乘
- return (1LL*x*b.y - 1LL*y*b.x);
- }
- point operator -(const point &b)const{
- return point(x - b.x,y - b.y);
- }
- long long dot(const point &b){ //点乘
- return 1LL*x*b.x + 1LL*y*b.y;
- }
- double dist(const point &b){
- return sqrt(1LL*(x-b.x)*(x-b.x)+1LL*(y-b.y)*(y-b.y));
- }
- long long dist2(const point &b){
- return 1LL*(x-b.x)*(x-b.x)+1LL*(y-b.y)*(y-b.y);
- }
- double len(){
- return sqrt(1LL*x*x+1LL*y*y);
- }
- double point_to_segment(point b,point c)//点a到“线段” bc的距离
- {
- point v[];
- v[] = {c.x - b.x,c.y - b.y};
- v[] = {x - b.x,y - b.y};
- v[] = {x - c.x,y - c.y};
- if(v[].dot(v[]) < ) return v[].len();
- if(v[].dot(v[]) > ) return v[].len();
- return fabs(.*(v[]*v[])/v[].len());
- }
- long long Xmult(point b,point c){ // 当a->b与a->c顺时针转时,返回正;
- return (b-*this)*(c-*this);
- }
- bool operator <(const point &b)const{
- return y < b.y||(y == b.y && x < b.x);
- }
- void input(){
- scanf("%d%d",&x,&y);
- }
- }p[MAXN];
- struct Line{
- point s,t;
- Line(){}
- Line(point _s,point _t){
- s = _s,t =_t;
- }
- bool operator <(const Line &b)const{
- return s < b.s;
- }
- }line[MAXN];
- int ans[MAXN],ret[MAXN];
- int main()
- {
- int n,m,i,j,x1,y1,x2,y2,kase = ,U,L;
- while(scanf("%d",&n),n){
- MS0(ans);
- MS0(ret);
- scanf("%d%d%d%d%d",&m,&x1,&y1,&x2,&y2);
- for(i = ;i <= n;i++){
- scanf("%d%d",&U,&L);
- line[i] = Line(point(U,y1),point(L,y2));
- }
- sort(line+,line+n+);
- line[] = Line(point(x1,y1),point(x1,y2));
- int x,y;
- for(i = ;i < m;i++){
- scanf("%d%d",&x,&y);
- int l = , r = n,tmp;
- while(l <= r){
- int mid = l + r >> ;
- if( point(x,y).Xmult(line[mid].s,line[mid].t) <= ) r = mid-; //在线的上边
- else tmp = mid,l = mid+; //线下的点所在的区域才是改line的标号;
- }
- ret[tmp]++;
- }
- for(i = ;i <= n;i++){
- ans[ret[i]]++;
- }
- puts("Box");
- for(i = ;i <= m;i++)if(ans[i])
- printf("%d: %d\n",i,ans[i]);
- }
- return ;
- }
Toy Storage的更多相关文章
- POJ 2398 - Toy Storage 点与直线位置关系
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5439 Accepted: 3234 Descr ...
- POJ 2398 Toy Storage(计算几何,叉积判断点和线段的关系)
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3146 Accepted: 1798 Descr ...
- POJ 2318 TOYS && POJ 2398 Toy Storage(几何)
2318 TOYS 2398 Toy Storage 题意 : 给你n块板的坐标,m个玩具的具体坐标,2318中板是有序的,而2398无序需要自己排序,2318要求输出的是每个区间内的玩具数,而231 ...
- 2018.07.04 POJ 2398 Toy Storage(二分+简单计算几何)
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Description Mom and dad have a problem: their ch ...
- POJ 2398 Toy Storage (叉积判断点和线段的关系)
题目链接 Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4104 Accepted: 2433 ...
- poj 2398 Toy Storage(计算几何)
题目传送门:poj 2398 Toy Storage 题目大意:一个长方形的箱子,里面有一些隔板,每一个隔板都可以纵切这个箱子.隔板将这个箱子分成了一些隔间.向其中扔一些玩具,每个玩具有一个坐标,求有 ...
- poj2398 Toy Storage 计算几何,叉积,二分
poj2398 Toy Storage 链接 poj 题目大意 这道题的大概意思是先输入6个数字:n,m,x1,y1,x2,y2.n代表卡片的数量,卡片竖直(或倾斜)放置在盒内,可把盒子分为n+1块区 ...
- poj 2398 Toy Storage(计算几何 点线关系)
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4588 Accepted: 2718 Descr ...
- POJ 2398 Toy Storage(计算几何)
题意:给定一个如上的长方形箱子,中间有n条线段,将其分为n+1个区域,给定m个玩具的坐标,统计每个区域中的玩具个数. 题解:通过斜率判断一个点是否在两条线段之间. /** 通过斜率比较点是否在两线段之 ...
随机推荐
- Linux vmstat具体解释(系统IO)
1. vmstat 能够展现给定时间间隔的server的状态值,包含server的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况 vmstat 2 10 2: 每隔2s 10 : 统计10次 ...
- android webview内容压线问题解决方法
最近在使用webview做页面开发,项目上要求webview在获取到焦点的时候需要有边框线,于是添加上了webview的选中效果,但是出现了网页中的内容压选中框的情况.之后给webview添加padd ...
- ioc容器
对于容器而言需要满足两个方面: 1.全局唯一 2.无论何地都可以进行对容器的访问 对于Spring而言,BeanFactory则就是这样的容器,只不过它过于底层.在我们的日常开发中还是使用Applic ...
- 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件
在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满足我们大部分的 ...
- UDP包的最大大小是多少?
每个udp包的最大大小是多少? 65507 约等于 64K 为什么最大是65507? 因为udp包头有2个byte用于记录包体长度. 2个byte可表示最大值为: 2^16-1=64K ...
- 动作之CCActionInstant(立即动作)家族
立即动作就是不需要时间,马上就完成的动作.立即动作的共同基类是CCActionInstant.CCActionInstant的常用子类有: CCCallFunc:回调函数包装器 CCFlipX:X轴翻 ...
- 【转】搭建Mac OS X下cocos2d-x的Android开发环境
http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ...
- (转)OpenVPN下载、安装、配置及使用详解
原文地址:http://www.365mini.com/page/14.htm OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的 ...
- photoshop 常用快捷键大全
一.文件新建 CTRL+N打开 CTRL+O 打开为 ALT+CTRL+O关闭 CTRL+W保存 CTRL+S 另存为 CTRL+SHIFT+S另存为网页格式 CTRL+ALT+S打印设置 CTRL+ ...
- zzzzw_在线考试系统①准备篇
在弄完购物系统之后,小博也了解了解怎么用struts这个框架捣鼓一个在线考试系统 购物系统用的是MVC模式,现在这个struts2原理上也是基于MVC模式的.那么要做这个东西之前先了解一下难点在哪里 ...