TOYS POJ - 2318(计算几何判断点和直线位置+二分)

setoolkit克隆网站获取用户信息 一、环境 kali、DVWA 二、步骤 首先打开kali,输入setoolkit 依次选择选项1-选项2-选项3-选项2 输入钓鱼网站的网址(默认为本地网址) 输入要克隆的网址URL 这里我的网址如图,将网址复制 然后模拟攻击场景,攻击者向受害者发送了一条钓鱼链接,此链接与DVWA的登陆页面完全一样,受害者点击之后并进行登陆信息 点击login之后,用户信息就被setool... 阅读详情

TOYS POJ - 2318

Calculate the number of toys that land in each bin of a partitioned toy box.
Mom and dad have a problem - their child John never puts his toys away when he is finished playing with them. They gave John a rectangular box to put his toys in, but John is rebellious and obeys his parents by simply throwing his toys into the box. All the toys get mixed up, and it is impossible for John to find his favorite toys.

John's parents came up with the following idea. They put cardboard partitions into the box. Even if John keeps throwing his toys into the box, at least toys that get thrown into different bins stay separated. The following diagram shows a top view of an example toy box.

这里写图片描述

For this problem, you are asked to determine how many toys fall into each partition as John throws them into the toy box. 

Input
The input file contains one or more problems. The first line of a problem consists of six integers, n m x1 y1 x2 y2. The number of cardboard partitions is n (0 < n <= 5000) and the number of toys is m (0 < m <= 5000). The coordinates of the upper-left corner and the lower-right corner of the box are (x1,y1) and (x2,y2), respectively. The following n lines contain two integers per line, Ui Li, indicating that the ends of the i-th cardboard partition is at the coordinates (Ui,y1) and (Li,y2). You may assume that the cardboard partitions do not intersect each other and that they are specified in sorted order from left to right. The next m lines contain two integers per line, Xj Yj specifying where the j-th toy has landed in the box. The order of the toy locations is random. You may assume that no toy will land exactly on a cardboard partition or outside the boundary of the box. The input is terminated by a line consisting of a single 0.
Output
The output for each problem will be one line for each separate bin in the toy box. For each bin, print its bin number, followed by a colon and one space, followed by the number of toys thrown into that bin. Bins are numbered from 0 (the leftmost bin) to n (the rightmost bin). Separate the output of different problems by a single blank line.
Sample Input

5 6 0 10 60 0
3 1
4 3
6 8
10 10
15 30
1 5
2 1
2 8
5 5
40 10
7 9
4 10 0 10 100 0
20 20
40 40
60 60
80 80
 5 10
15 10
25 10
35 10
45 10
55 10
65 10
75 10
85 10
95 10
0

Sample Output

0: 2
1: 1
2: 1
3: 1
4: 0
5: 1

0: 2
1: 2
2: 2
3: 2
4: 2

Hint
As the example illustrates, toys that fall on the boundary of the box are “in” the box.

题意:

在一个盒子内用挡板隔开给出挡板两端坐标和一些玩具的坐标输出落在每个方格中的玩具数量

分析:

判断点在直线的左侧还是右侧可以用叉积的正负号来判断

这里写图片描述

如图可知道如果点在直线的左侧,那么叉积的符号应该是负的,反之如果在直线的右侧,符号应该是正的(右手法则,注意向小于180°的方向转)

因此对于每输入的一个点,可以二分找到它所属于的位置

code:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 5100;
struct Point{
    int x,y;
    Point(){}
    Point(int xx,int yy):x(xx),y(yy){}
};
struct Card{
    Point up,down;
    Card(){}
    Card(int x1,int y1,int x2,int y2){
        up = Point(x1,y1);
        down = Point(x2,y2);
    }
}c[maxn];
int n,m,x1,y1,x2,y2;
int pos[maxn];
bool judge(int x,int y,int mid){
    int ans = (c[mid].up.x-x) * (c[mid].down.y-y) - (c[mid].down.x-x) * (c[mid].up.y-y);
    if(ans < 0) return false;//在线左侧
    return true;//在线右侧
}
void search(int x,int y){
    int l = 0,r = n - 1;
    while(l <= r){
        int mid = l + r >> 1;
        if(judge(x,y,mid))//点在线的右侧,找右区间
            l = mid + 1;
        else{//点在左侧找左区间
            r = mid - 1;
        }
    }
    pos[l]++;
}
int main(){
    while(~scanf("%d",&n) && n){
        scanf("%d%d%d%d%d",&m,&x1,&y1,&x2,&y2); 
        for(int i = 0; i < n; i++){
            int u,l;
            scanf("%d%d",&u,&l);
            c[i] = Card(u,y1,l,y2);
        }
        memset(pos,0,sizeof(pos));
        for(int i = 0; i < m; i++){
            int x,y;
            scanf("%d%d",&x,&y);
            search(x,y);
        }
        for(int i = 0; i <= n; i++){
            printf("%d: %d\n",i,pos[i]);
        }
        printf("\n");
    }
    return 0;
}
H265/HEVC视频分层码流分析语义元素解释 一、H265概述 H265/HEVC(Hight Efficiency Video Coding)是由ITU-T和ISO/IEC两大组织在H264/AVC的基础之上推出的新一代高效视频编码标准,主要为应对高清和超高清视频在网络传输和数据存储方面带来的挑战。上一篇文章对H264/AVC视频码流进行了详细的分析,本文继续从数据处理的角度对H265/HEVC视频码流进行详细分析。 二、H265分层结构 H265的分层结构与H264类似,分为视频编码层(VCL:Video Code Layer)和网络抽象层(NAL 阅读详情

相关推荐

transformer中QKV的通俗理解(剩女与备胎的故事)

用vit的时候读了一下transformer的思想,前几天面试结束之后发现对QKV又有点忘记了, 写一篇文章来记录一下 参考链接: 哔哩哔哩:在线激情讲解transformer&Attention注意力机制(上)在线激情讲解transformer&Attention注意力机制(上)_哔哩哔哩_bilibiliAttention is all you need介绍 更具体的介绍可以去阅读论文在Attention is all you need这篇文章中提出了著名的Transformer模型Transforme

Peter的博客 1万+

POJ2318---TOYS (基础计算几何:叉积应用)

【题目来源】:https://vjudge.net/problem/POJ-2318 【题意】 给出一个矩形的柜子,这个柜子有n个隔板,小孩手里有m个布偶,将娃娃都扔进去,问,被隔板分离出来的每个小空间里有几个娃娃? 给出n,m,和矩阵柜子的左上角坐标,与右下角的坐标,下面有n+m行,前n行给出隔板的上下两个横坐标,下面m行表示娃娃的所在位置,并且不会恰好在隔板上。 【思路】 利用叉积公式

Crazy 350

MT6816磁编码器在无人机电调中的实战应用:从选型到调试全记录

本文详细介绍了MT6816磁编码器在无人机电调系统中的实战应用,涵盖选型、硬件集成、软件配置到飞行测试的全流程。通过对比霍尔传感器和光电编码器,突出MT6816在角度分辨率、安装公差和抗振动能力等方面的优势,为无人机动力系统提供高精度控制解决方案。

pandas7gardener的博客 234

poj-2318 TOYS

题意: 给出平面上一个矩形和n个纵向分割矩形的直线; 直线之间互不相交,将矩形分割为n-1个块; 现在矩形上有m个点,求每个块内有几个点; n,m 题解: 首先将直线求出来,然后最朴素的想法是拿一个点一一和块去比较; 这样复杂度是O(nm)的,并且实际上做了许多无用的计算; 例如:当你用一个点去比较一个块之后,实际上已经可以知道这个点是在块的左面还是右面了; 也就是说

140142 810

Squareline Studio + LVGL实战:从Figma设计到MCU屏幕的UI开发一条龙(避坑中文显示)

本文详细介绍了使用Squareline Studio和LVGL实现从Figma设计到MCU屏幕UI开发的全流程,重点解决中文显示等常见问题。通过设计工具链搭建、设计稿转换、LVGL工程集成及性能优化等步骤,帮助开发者高效完成嵌入式GUI开发,提升开发效率。

weixin_29246195的博客 583

SAP-ABAP:SAP库存管理核心增强:IF_EX_MB_DOCUMENT_BADI 深度解析

SAP库存管理核心增强:IF_EX_MB_DOCUMENT_BADI 深度解析

baidu_35680696的博客 1446

计算几何模板一(点、线段、直线)

#include #include #include #include using namespace std; #define Sgn(x) (((x)<0)?(-1):(1)) #define eps 1e-8 #define INF 1e10 #define Pi (acos(-1.0)) double Deg2Rad(double deg) {return (deg*Pi/180.0);}

algzjh的博客 896

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2873

TOYS POJ - 2318

题目链接:TOYS 思路: 很明显的计算几何题,需要用到叉积判断点在线段的左边还是右边 暴力的话 n2n^2n2 的复杂度会超时,这里利用二分优化(一个点必然是落在一条直线的右边及下一条直线的左边),把地图的左右边界各自作为一条直线插入,并且考虑到存在点落在边界的情况,这两条新加的直线要对应向地图外偏移一点。 点与直线的位置关系 //`点和直线关系` //`1 在左侧` //`2 在右侧` //`3 在直线上` int relation(Point p) { int c = sgn((p

AAmiu的博客 165

总结个人关于雷达样式的见解(脉内脉间调制)

概述 雷达有各种各样的脉内脉间调制样式,对于雷达的设计者来说,不外乎三个目的: 1、增加雷达性能,如提高测距精度,增大侦察距离等; 2、雷达的工作机制决定雷达必须采用此种样式的调制,如有些SAR雷达为保证径向测距精度,需要使用脉内宽带调制信号; 3、降低雷达被电子战装备截获的概率,也就是LPI设计。 对于雷达对抗方,则只会观察到信号存在脉内及脉间的调制。对于一般的雷达信号,通常只采用脉内调制,脉间频率调制,脉间PRI调制。 脉间调制类型 1、PD雷达的脉间特征 雷达进行脉间调制的主要是PRI..

年糕的博客 3万+

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 897

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

计算几何基础题 题目大意就是一个盒子被分成了若干个区域,有m个小球,问每个区域里分别有多少个小球。 我们首先考虑暴力。 我们如何判断小球是否在一个区域内呢,我们发现一个小球在区域x,也就是说所有小于x的所有隔板都在小球坐标的左边,所有大于x的隔板都在小球坐标的右边,所以我们可以暴力n2n^2n2枚举每个小球的坐标,判断有多少个隔板(线段)在小球的左边,个数就是答案(区域从0到n)。 数据5000,10组数据,n2n^2n2暴力数据达到了2∗1082*10^{8}2∗108,2亿,不可过,所以我们考虑优化。.

繁凡さん的博客 477

在 SAP 资产模块跨 2024 和 2025 两个年度操作后,运行 AFAB 测试无数据,大概率是折旧已完全过账、跨期配置异常或资产数据异常等原因

SAP资产模块跨年度操作AFAB测试无数据的排查方案:首先检查折旧是否已完全计提,确认资产主数据价值;其次验证跨年度配置是否合规,包括全局配置、折旧范围和账期状态;然后重新执行AFAR折旧计算刷新数据;排查资产主数据异常或业务操作冲突;最后核对AFAB运行参数是否正确设置,包括会计年度、期间范围和运行模式等。

金牌架构师 866

POJ2318 TOYS 点与直线的位置关系

POJ2318:POJ2318 题意: 有一个长方形,左上顶点坐标(x1,y1),右下顶点坐标(x2,y2),被N条上端点为(up,y1),下端点为(low,y2)的线段分成N+1部分,向长方形中扔M个质点,每个点坐标(x,y),求落在每一部分的点的数量。 Input: 每组数据第一行6个整数N,M,x1,y1,x2,y2,其后N行,每行2个整数up,low,再其后M行,每行2个整数x,y,输入...

匿名攻城狮 807

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ 2318 TOYS

POJ 2318 TOYS Description Calculate the number of toys that land in each bin of a partitioned toy box. Mom and dad have a problem - their child John never puts his toys away when he is finished playin...

旺崽的博客 2904

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

poj2318TOYS【二分+点与直线位置判断】

Language: Default TOYS Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12094   Accepted: 5833 Description Calculate the number of toys that land in each bin

走一步再走一步 1552

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TOYS-POJ2318 简单几何,叉乘

TOYS-POJ2318 简单几何,叉乘 题意 把一个盒子用m个隔板隔开,给定n个点的坐标,问每一个区域中各有多少个点 思路 利用向量叉乘判断点在线的哪一边,当叉乘小于等于0时,点在线的左边,否则在右边 题目中 You may assume that the cardboard partitions do not intersect each other and that they are specified in sorted order from left to right. 表示了输入的隔板是排好

Charles Liu 199

POJ2318TOYS(叉积判断点与直线位置)

题目链接 题意:一个矩形被分成了n + 1块,然后给出m个点,求每个点会落在哪一块中,输出每块的点的个数 就是判断 点与直线的位置,点在直线的逆时针方向叉积 < 0,点在直线的顺时针方向叉积 > 0 1 // 可以选择二分查找 2 #include <iostream> 3 #include <algorithm> 4 #i...

apk6909的博客 164

A - TOYS POJ - 2318 计算几何+二分

题意:在一个长方形内给你n条直线,m个点,问你每个区间有多少个点 题解:对于每个点二分一下最右边的直线,就正好是这条直线左边区间之内的点。我一开始还想前缀和一下,再减出来,然后发现这两个操作正好抵消了。。。。 #include <iostream> #include <cstdio> #include <cmath> #include <cstrin...

W349652743的博客 251

TOYS(计算几何基础+点与直线的位置关系)

题目链接:http://poj.org/problem?id=2318 题面:                                  TOYS Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17413 Accepted: 8300 Desc...

di6499的博客 237

POJ2318-toys(计算几何基础+二分)

题目:http://poj.org/problem?id=2318 题目大意:给定一个矩形和一些线段,线段将矩形分割为从左至右的若干部分,之后给出一些玩具的坐标,求每个部分中玩具的数量 题解: 计算几何水题…… 注意到题目给出线段是按从左至右的顺序给出的,考虑到对于每条直线,玩具只存在两种状态:在它左边或者在它右边,并且这种状态是单调的(一定存在一个分界,它左边的线段都在玩具右边,它右边的...

temp06的博客 1939

TOYS POJ - 2318 (二分+斜率)

问题虫洞: TOYS POJ - 2318 黑洞内窥: 多组测试,一行六个数n, m, x1, y1, x2, y2; 锁定一个矩阵的左端点为(x1, y1),右下点为(x2, y2), 紧跟着n行,一行两个数a,b,代表(a, y1) 到 (b, y2)之间有一条直线。 n个点n条分割线将矩阵分成了n+1个区域。。。 再接着m个点的坐标(x, y) ,最后输出每个区域的点数。...

浦柳人的博客 329

poj 2318 TOYS(计算几何 点跟直线的位置关系)

简单的计算几何 先说下题目的意思: 告诉一个矩形,在告诉n条直线的信息,这n条直线把这个矩形划分成n+1个区域,接着告诉m个点的坐标,让你求出这m个点分别在哪个区域中。 出个n+1个区域中分别有多少个点。 思路: 有一个细节是他告诉的直线信息是一次从矩形的左端到右端排列的。也就是说存放直线的line数组里直线是有序的,知道这个就可以用二分+叉乘来判断点的区域了。 具体实现看代码, #

多啦A梦也会有好多的烦恼 992

POJ 2318 TOYS(计算几何+点与直线位置关系+二分)

题目链接:http://poj.org/problem?id=2318 求出每个格子里面玩具数量 首先把起始竖线和末尾竖线加上,最后对于每个点二分判断在哪个格子里面,这个二分应该很明显 点在直线哪边可以通过X乘积判断 #include #include #include #include #include using namespace std; #define maxn 6

sunrain的专栏 760

poj 2318 TOYS--点在直线左侧还是右侧

/* poj 2318 TOYS 简单的计算几何 就是一个矩形的范围 被n条线段分成n+1个区域 然后有m个点的坐标,他们归属于所在的区域 然后输出各区域内点的个数 就是算一下点是在线段左侧还是右侧 用向量的叉积即可 保证线段所在的向量的x>0 那么 叉积>0 点在左侧 叉积<0 点在右侧 二分求解即可 */ #include struct point { int

786

POJ 2318 TOYS (计算几何+叉积)

题面 Calculate the number of toys that land in each bin of a partitioned toy box. Mom and dad have a problem - their child John never puts his toys away when he is finished playing with them. They gave...

Yi_Qing_Z的博客 393
上一篇: You Are the One HDU - 4283(区间DP)
下一篇: Toy Storage POJ - 2398(计算几何基础判断点与直线位置+二分)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值