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. Android中ListView通过BaseAdapter实现数据的绑定

    1. public class ListFiles extends Activity { ListView Listview=null; protected void onCreate(Bundle ...

  2. 查看MySQL数据库的默认编码

    查看MySQL数据库的默认编码 1.使用status命令能够显示数据库的相关系信息,示例如下: mysql> status;————–mysql Ver 14.12 Distrib 5.0.77 ...

  3. 黑马程序员_<<IO流基本操作(Writer,Reader)>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.概述 硬盘之间的文件的传输,硬盘中文件的 ...

  4. iOS之UITableView带滑动操作菜单的Cell

    制作一个可以滑动操作的 Table View Cell 本文翻译自 http://www.raywenderlich.com/62435/make-swipeable-table-view-cell- ...

  5. iBatis查询结果部分为null的解决办法

    今天第一天接触iBatis,没有系统学习过,遇到了一个简单却闹心的错误:用iBatis查询数据库中某个表的多列结果作为一个对象返回时,会出现对象的部分属性为null值得错误.例如,查询用户表中的用户I ...

  6. JAVA 将接口的引用指向实现类的对象

    有一个很简单的例子,java.util中的类ArrayList实现了接口List则生成ArrayList对象时可用以下语句. List list=new ArrayList(); 也就是说所有实现了接 ...

  7. 再探java基础——对面向对象的理解(1)

    对象 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则.计划或事件.对象具有属性和行为,在程序设计中对象实现了数据和操作的结合,使数 ...

  8. swift 中String常用操作

    1.  字符串定义 var s = "aaaaaa" // 两个字符串均为空并等价. var emptyString = ""   var anotherEmp ...

  9. 实现C++模板类头文件和实现文件分离的方法

    如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer(第四版)>>里的观点:1)标准C++为编译模板代码定义了两种模型:“包含”模型和“ ...

  10. mevan引入容联云通讯jar

    首先从官网下载jar 然后拷贝到lib目录下 最后在pom.xml中这样写 <dependency> <groupId>cn.com</groupId> <a ...