这是一个线段树的题目;

我记得一个月前在cf上也做过一个类似的题目;

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 100010
#define bon 1000010
using namespace std;
int cover[bon<<];
int f[maxn<<],ans[maxn<<];
struct line
{
int x1,y1,x2,y2;
bool operator<(const line &t)const
{
return y1<t.y1;
}
} li[maxn<<]; void pushdown(int rt)
{
if(cover[rt]>=)
{
cover[rt<<]=cover[rt<<|]=cover[rt];
cover[rt]=-;
}
} int query(int x,int l,int r,int rt)
{
if(cover[rt]>=) return cover[rt];
int mid=(l+r)>>;
pushdown(rt);
if(x<=mid)return query(x,l,mid,rt<<);
else return query(x,mid+,r,rt<<|);
} void update(int L,int R,int i,int l,int r,int rt)
{
if(L<=l&&R>=r)
{
cover[rt]=i;
return;
}
int mid=(l+r)>>;
pushdown(rt);
if(L<=mid)update(L,R,i,l,mid,rt<<);
if(R>mid)update(L,R,i,mid+,r,rt<<|);
}
int n,q,xx;
void solve(int x)
{
int k=query(x,,bon,);
if(li[k].y1!=li[k].y2)x=ans[k];
if(f[k]==n)printf("%d\n",x);
else printf("%d %d\n",x,li[f[k]].y1);
} int main()
{
while(scanf("%d%d",&n,&q)!=EOF)
{
memset(cover,-,sizeof cover);
for(int i=; i<n; i++)
{
scanf("%d%d%d%d",&li[i].x1,&li[i].y1,&li[i].x2,&li[i].y2);
if(li[i].y1<li[i].y2)
{
swap(li[i].x1,li[i].x2);
swap(li[i].y1,li[i].y2);
}
}
li[n].x1=,li[n].x2=bon,li[n].y1=bon+,li[n].y2=bon+;
sort(li,li+n+);
for(int i=n; i>=; i--)
{
if(li[i].y1==li[i].y2) f[i]=i;
else
{
int k=query(li[i].x1,,bon,);
f[i]=f[k];
if(li[k].y1==li[k].y2) ans[i]=li[i].x1;
else ans[i]=ans[k];
}
int l=li[i].x1,r=li[i].x2;
if(l>r)swap(l,r);
update(l,r,i,,bon,);
}
while(q--)
{
scanf("%d",&xx);
solve(xx);
}
}
return ;
}

UVA 12647 Balloon的更多相关文章

  1. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  2. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  3. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  4. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  5. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

  6. UVA数学入门训练Round1[6]

    UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...

  7. UVA - 1625 Color Length[序列DP 代价计算技巧]

    UVA - 1625 Color Length   白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束   和模拟赛那道环形DP很想,计算这 ...

  8. UVA - 10375 Choose and divide[唯一分解定理]

    UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  9. UVA - 11584 Partitioning by Palindromes[序列DP]

    UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...

随机推荐

  1. 嵌入式中 MMU的功能

    学习嵌入式才发现要看的书太多,外面的世界很精彩啊,现在来说说MMU吧,MMU是Memory Management Unit的缩写,是用来管理虚拟内存系统的器件. MMU通常是CPU的一部分,本身有少量 ...

  2. Ubuntu lnmp安装记录

    参考了: Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL 在访问 info.php的时候,我显示的是502错误.后面我参考了: Ubuntu15 ...

  3. Burosuite抓包Sqlmap学习Sql注入

    在sqlmap中加入--proyxy参数: --proxy "http://127.0.0.1:8080" 如下图所示: 回车以后sqlmap会自动抓到数据包: 我们选择向前(fo ...

  4. PHP之文件的锁定、上传与下载

    小结文件的锁定机制.上传和下载 1.文件锁定 现在都在讲究什么分布式.并发等,实际上文件的操作也是并发的,在网络环境下,多个用户在同一时刻访问页面,对同一服务器上的同一文件进行着读取,如果,这个用户刚 ...

  5. h2database源码浅析:锁与MVCC

    Table Level Locking The database allows multiple concurrent connections to the same database. To mak ...

  6. plupload+struts2实现文件上传下载

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8" ...

  7. [记录 ]升级IOS 9 和 XCode 7 引起的问题

    问题一: 升级xcode 7最低的系统配置要求 升级了ios9 后使用 xcode 6.1 已经不能用了,必须升级 xcode 7才行,原先的系统是OSX 10.10.1 版本.而xcode 7.0 ...

  8. IOS 应用程序启动加载过程(从点击图标到界面显示)

    今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简 ...

  9. 利用css3动画和border来实现圆形进度条

    最近在学习前端的一些知识,发现border的功能十分强大啊! 首先来看看demo 就是这么一个圆形的进度条,在文本框中输入0-100的数值下面的进度条相应的转到多少 这个主要是利用border,旋转和 ...

  10. VC++ CTime Format 详解

    参考链接: VC++中CTime类Format参数详解 CTime/COleDateTime::Format方法的使用 http://stat.ethz.ch/R-manual/R-devel/lib ...