http://codeforces.com/contest/369/problem/E

题意:输入n,m; n 代表有多少个线段,m代表有多少个询问点集。每一个询问输出这些点的集合所占的线段的个数。

思路:求出没有被点的覆盖的线段的个数,n-这个个数就是所求的。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 2000000
using namespace std;
const int inf=1e6+; int n,m;
int c[maxn];
int ans[maxn];
struct node
{
int l,r;
int id;
bool operator <(const node &a)const
{
return (r<a.r)||(r==a.r&&l<a.l);
}
} p[maxn],q[maxn]; int low_bit(int x)
{
return x&(-x);
} void add(int pos,int val)
{
while(pos<=inf)
{
c[pos]+=val;
pos+=low_bit(pos);
}
} int sum(int pos)
{
int sum1=;
while(pos>)
{
sum1+=c[pos];
pos-=low_bit(pos);
}
return sum1;
} int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=; i<n; i++)
{
scanf("%d%d",&p[i].l,&p[i].r);
p[i].id=i+;
}
sort(p,p+n);
int cnt=;
for(int i=; i<=m; i++)
{
ans[i]=n;
}
for(int i=; i<=m; i++)
{
int num,x;
scanf("%d",&num);
int last=;
for(int j=; j<=num; j++)
{
scanf("%d",&x);
q[cnt].l=last;
q[cnt].r=x;
q[cnt++].id=i;
last=x;
}
q[cnt].l=x;
q[cnt].r=inf;
q[cnt++].id=i;
}
sort(q,q+cnt);
int j=;
for(int i=; i<cnt; i++)
{
while(j<n&&p[j].r<q[i].r)
{
add(p[j++].l,);
}
ans[q[i].id]-=sum(q[i].r-)-sum(q[i].l);
}
for(int i=; i<=m; i++)
{
printf("%d\n",ans[i]);
}
}
return ;
}

cf E. Valera and Queries的更多相关文章

  1. CodeForces - 369E Valera and Queries(树状数组)

    CodeForces - 369E Valera and Queries 题目大意:给出n个线段(线段的左端点和右端点坐标)和m个查询,每个查询有cnt个点,要求给出有多少条线段包含至少其中一个点. ...

  2. CF 369C . Valera and Elections tree dfs 好题

    C. Valera and Elections   The city Valera lives in is going to hold elections to the city Parliament ...

  3. CF 441E Valera and Number

    CF 441E Description 一共执行\(k\)次,每次有\(p\%\)把\(x * 2\),有\((100 - p)\%\)把\(x + 1\).问二进制下\(x\)末尾期望\(0\)的个 ...

  4. CF 1093 G. Multidimensional Queries

    G. Multidimensional Queries 链接 分析: 考虑如何去掉绝对值符号. $\sum \limits_{i = 1}^{k} |a_{x, i} - a_{y, i}|$,由于k ...

  5. CF 1003D Coins and Queries【位运算/硬币值都为2的幂/贪心】

    Polycarp has n coins, the value of the i-th coin is ai. It is guaranteed that all the values are int ...

  6. Codeforces 369E Valera and Queries --树状数组+离线操作

    题意:给一些线段,然后给m个查询,每次查询都给出一些点,问有多少条线段包含这个点集中的一个或多个点 解法:直接离线以点为基准和以线段为基准都不好处理,“正难则反”,我们试着求有多少线段是不包含某个查询 ...

  7. Codeforces Round #216 (Div. 2) E. Valera and Queries 树状数组 离线处理

    题意:n个线段[Li, Ri], m次询问, 每次询问由cnt个点组成,输出包含cnt个点中任意一个点的线段的总数. 由于是无修改的,所以我们首先应该往离线上想, 不过我是没想出来. 首先反着做,先求 ...

  8. cf D. Valera and Fools

    http://codeforces.com/contest/369/problem/D 标号最小的两个人会有四种状态:a活b活,a死b活,a活b死,a死b死:按照这四种状态dfs就可以求出最后的数量. ...

  9. cf C. Valera and Elections

    http://codeforces.com/contest/369/problem/C 先见边,然后dfs,在回溯的过程中,如果在这个点之后有多条有问题的边,就不选这个点,如果没有而且连接这个点的边还 ...

随机推荐

  1. linux grep shell相关

    http://blog.csdn.net/buutterfly/article/details/6615162 http://www.2cto.com/os/201307/224496.html ht ...

  2. json与jsonp ajax

    今天在网上找了一下资料,发现这篇文章总结得好,果断转了:http://blog.csdn.net/superhosts/article/details/9057301

  3. 【转】Beaglebone Black

    原文网址:http://bbs.eeworld.com.cn/thread-431409-1-1.html 开源硬件在国外火得一塌糊涂,国内却没有那么多人玩,直接导致中文论坛资料严重缺乏……但这也挡不 ...

  4. Eclipse设置合适的字体

    一直使用Eclipse开发,最近感觉Comic Sans MS不错,但我的eclipse的默认字体里没有. 如果系统里有这个字体的话,那可以很简单的将这个字体添加到Eclipse中: Windows ...

  5. HDOJ(HDU) 1406 完数

    Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是 ...

  6. NOI2014 D2T3 购票 简单粗暴解法(凸包维护)

    之前说过这题能用点分治(详见 http://www.cnblogs.com/jasonyu/p/noi2014.html),但其实还有更粗暴的解法. 要求出一个点的答案,我们需要知道树上一段路径的点形 ...

  7. MapReduce优化一(改变切片大小和Shuffle过程Reduce占用堆大小)

    /*为防止处理超大作业时超时,将io时间设为1小时         *         <property>            <name>dfs.datanode.soc ...

  8. js继承的三种实现

    概念:在有些面向对象语言中,可以使用一个类(子类)继承另一个类(父类),子类可以拥有父类的属性和方法,这个功能可以在js中进行模拟. 三种方法: 第一种:扩展Object方法 Object.proto ...

  9. [转]RecyclerView初探

    原文地址:http://www.grokkingandroid.com/first-glance-androids-recyclerview/ RecyclerView是去年谷歌I/O大会上随Andr ...

  10. C++中数组初始化

    #include<iostream>using std::cout;using std::endl;int arr1[5];int arr2[5] = {1,3,5};int main() ...