cf E. Valera and Queries
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的更多相关文章
- CodeForces - 369E Valera and Queries(树状数组)
CodeForces - 369E Valera and Queries 题目大意:给出n个线段(线段的左端点和右端点坐标)和m个查询,每个查询有cnt个点,要求给出有多少条线段包含至少其中一个点. ...
- 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 ...
- CF 441E Valera and Number
CF 441E Description 一共执行\(k\)次,每次有\(p\%\)把\(x * 2\),有\((100 - p)\%\)把\(x + 1\).问二进制下\(x\)末尾期望\(0\)的个 ...
- CF 1093 G. Multidimensional Queries
G. Multidimensional Queries 链接 分析: 考虑如何去掉绝对值符号. $\sum \limits_{i = 1}^{k} |a_{x, i} - a_{y, i}|$,由于k ...
- 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 ...
- Codeforces 369E Valera and Queries --树状数组+离线操作
题意:给一些线段,然后给m个查询,每次查询都给出一些点,问有多少条线段包含这个点集中的一个或多个点 解法:直接离线以点为基准和以线段为基准都不好处理,“正难则反”,我们试着求有多少线段是不包含某个查询 ...
- Codeforces Round #216 (Div. 2) E. Valera and Queries 树状数组 离线处理
题意:n个线段[Li, Ri], m次询问, 每次询问由cnt个点组成,输出包含cnt个点中任意一个点的线段的总数. 由于是无修改的,所以我们首先应该往离线上想, 不过我是没想出来. 首先反着做,先求 ...
- cf D. Valera and Fools
http://codeforces.com/contest/369/problem/D 标号最小的两个人会有四种状态:a活b活,a死b活,a活b死,a死b死:按照这四种状态dfs就可以求出最后的数量. ...
- cf C. Valera and Elections
http://codeforces.com/contest/369/problem/C 先见边,然后dfs,在回溯的过程中,如果在这个点之后有多条有问题的边,就不选这个点,如果没有而且连接这个点的边还 ...
随机推荐
- M - 约会安排 - hdu 4553
寒假来了,又到了小明和女神们约会的季节. 小明虽为�丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会.与此同时,也有很多基友找他开黑,由于数量 ...
- c语言学习笔记(1)——c语言的特点
一.c语言概述 1.为什么学习c语言? (1)c的起源和发展 第一代语言:机器语言 1101 第二代语言:汇编语言 add ax,bx; 第三代语言:高级语言 a+b; 结构化:c fortra ...
- java中的“包”与C#中的“命名空间
原文地址:http://www.cnblogs.com/lidabo/archive/2012/12/15/2819865.html Package vs. Namespace 我们知道,重用性(re ...
- Wix - 教程
1. 不错的教程 http://www.merlinia.com/mdt/WiXTutorial4.msl 2.
- CheckBox的触发
遇到的问题:当Checkbox选中时触发Checked事件,使界面处于状态1,但是页面状态2时也希望checkBox处于选中状态,但是直接修改它的IsChecked属性势必会触发他的Checked事件 ...
- (转)20 个大大节省你时间的 HTML5 开发工具
Rendera 如果你希望有个环境可以测试.浏览和体验各种不同的 CSS/HTML 和 JavaScript 代码,Rendera 为你提供了实时的运行结果.类似 RunJS. Patternizer ...
- Mongodb 条件查询
1.1 查询出所有数据的指定键(name ,age ,country) db.persons.find({},{name:1,age:1,country:1,_id:0}) 2.查询条件 2.查询条件 ...
- 关于phpmyadmin中添加外键的做法
今天想加个外键,又不想用命令行,打开PHPMYADMIN看怎么弄,找了半天没有找到添加外键的地方,然后上网搜了一会,发现目前的PHPMYADMIN确实没有这个设置,所以只能手动命令行添加了. 语法 ...
- Unity用户自定义圆角头像
前天朋友遇到一个这样的需求,而且比较棘手让我帮忙解决.需求就是棋牌类的游戏,玩家的个人资料中包括自己的头像而且可以浏览相册中的图片或者使用相机拍照设置.关于这个问题我也查阅一些资料,由于涉及安卓部分知 ...
- Qt 域名转成IP
#include <stdio.h>#include <stdlib.h>#include <netdb.h>#include <arpa/inet.h> ...