题目

传送门:QWQ

分析

扫描线搞一搞。

按左端点排序,左端点相同时按右端点排序。

如果是左端点就$ cnt++ $,否则$ cnt-- $

统计一下$ Max $就行了

代码

#include <bits/stdc++.h>
using namespace std;
void update(int x,int a,int w,double& L,double& R){
if(a==0){
if(x<=0||x>=w) R=L-1;
}
else if(a>0){
L=max(L,-(double)x/a);
R=min(R,double(w-x)/a);
}
else{
L=max(L,(double)(w-x)/a);
R=min(R,-(double)x/a);
}
}
const int maxn=100010;
struct Event{
double x; int type;
bool operator < (const Event& a) const{
return x<a.x || (x==a.x&&type>a.type);
}
}events[maxn*2]; int main(){
int T;scanf("%d",&T);
while(T--){
int w,h,n,e=0;
scanf("%d%d%d",&w,&h,&n);
for(int i=0;i<n;i++){
int x,y,a,b;
scanf("%d%d%d%d",&x,&y,&a,&b);
double L=0, R=1e9;
update(x,a,w,L,R); update(y,b,h,L,R);
if(R>L){
events[e++]=(Event){L,0};
events[e++]=(Event){R,1};
}
}
sort(events,events+e);
int cnt=0, ans=0;
for(int i=0;i<e;i++){
if(events[i].type==0) ans=max(ans,++cnt);
else --cnt;
}
printf("%d\n",ans);
}
return 0;
}

【UVALive】3905 Meteor(扫描线)的更多相关文章

  1. UVaLive 3905 Meteor (扫描线)

    题意:给定上一个矩形照相机和 n 个流星,问你照相机最多能拍到多少个流星. 析:直接看,似乎很难解决,我们换一个思路,我们认为流星的轨迹就没有用的,我们可以记录每个流星每个流星在照相机中出现的时间段, ...

  2. LA 3905 Meteor 扫描线

    The famous Korean internet company nhn has provided an internet-based photo service which allows The ...

  3. 【UVALive 3905】BUPT 2015 newbie practice #2 div2-D-3905 - Meteor

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/D The famous Korean internet co ...

  4. 3905 - Meteor

    The famous Korean internet company nhn has provided an internet-based photo service which allows The ...

  5. LA 3905 Meteor

    给出一些点的初始位置(x, y)及速度(a, b)和一个矩形框,求能同时出现在矩形框内部的点数的最大值. 把每个点进出矩形的时刻分别看做一个事件,则每个点可能对应两个事件,进入事件和离开事件. 按这些 ...

  6. ACM计算几何题目推荐

    //第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...

  7. 【转换模型+扫描线】【UVA1398】Meteor

    The famous Korean internet company nhn has provided an internet-based photo service which allows The ...

  8. UVALive 4221 Walk in the Park 扫描线

    Walk in the Park 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemi ...

  9. 扫描线 - UVALive - 6864 Strange Antennas

    Strange Antennas Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=87213 M ...

随机推荐

  1. Win10启动盘制作工具

    Rufus https://rufus.akeo.ie/ http://www.iplaysoft.com/windows-10-udisk-install.html

  2. mybatis传入0但判断为空

    当是数字类型时,传入0会判断为空,当值为空,显示在页面上的将会是0:

  3. pdi vcard-2.1

    vCard The Electronic Business Card Version 2.1 A versit Consortium Specification September 18, 1996 ...

  4. asp.net string有多行文字

    用如下格式设置

  5. Java之JVM逃逸分析

    引言: 逃逸分析(Escape Analysis)是众多JVM技术中的一个使用不多的技术点,本文将通过一个实例来分析其使用场景. 概念 逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配 ...

  6. yxy-插入formid-并发/压力(入参的变量化)

    1.抓取接口如下 2.该接口为插入数据库操作,由于前段操作频繁,就简单压测一下 接口中formId.accountId.openId为变量 formId为随机生成插入:accountId.openId ...

  7. [转] Hiredis: redis c client使用注记

    编译 使用 初始化 连接redis数据库 redisContext * pConn = redisConnect(redisIp.c_str(), redisPort);if (m_cLocal == ...

  8. 【pluginShare】依赖JQuery的弹出层封装

    目前正在做的项目,老大说打算一点点做成bootstrap那样,然后开源... 所以,趁现在不忙,先封装一些小插件,然后慢慢完善,扩大,开源... 因此博客也多了一个新的模块------分享 第一弹:a ...

  9. absolute的left和right的妙用

    之前做了一个自定义鼠标右键的布局,做的过程中遇到了一个很有趣的问题,之前一直没有注意到. 目标样式如下: 期初并不知道文字内容需要随机,所以写的时候写“死”了. 所有的内容都是按照设计的四个文字走的, ...

  10. 添加dom节点及优化

    创建并添加dom加点如何进行优化? 1.使用文档片(DocumentFragment) 可以理解为"仓库",用来保存将来可能会添加到DOM中的节点: var fragment = ...