D

  只要搞清楚一个性质:确定了当前最大和次大的位置,局面就唯一确定了;

  根据这个性质设计dp,统计到达该局面的方法数即可.

E

  询问的要求是: 求有多少个区间至少覆盖了询问的点集中的一个;

  转化成逆命题比较好算: 算出排好序后相邻的点之间有多少个完整区间,再用n减去它.

  于是问题转化为回答若干询问[l,r] ,它当中有多少个完整的区间.

  可以用经典的离线+树状数组来做.

  

#define rep(i,n) for(int i=0 ; i<(n) ; i++ )
#define ls ((rt)<<1)
#define rs (((rt)<<1)+1)
#define mid ((l+r)>>1)
#define maxn 1000002
struct node
{
int id,lft;
};vector<node>q[maxn];
vector<int>l[maxn];
int sum[maxn],ans[],n,m,cnt[];
int lowbit(int x) {return x&(-x);}
void add(int pos,int var)
{
for (int i=pos ; i<maxn ; i+=lowbit(i)) sum[i]+=var;
}
int query(int pos)
{
int res=;
for (int i=pos ; i> ; i-=lowbit(i)) res+=sum[i];
return res;
}
int main()
{
scanf("%d%d",&n,&m);
rep(i,n)
{
int lft,rgt;
scanf("%d%d",&lft,&rgt);
l[rgt].push_back(lft);
}
rep(i,m)
{
int sz;
scanf("%d",&sz);
rep(j,sz) scanf("%d",&cnt[j]);
int lft,rgt;
lft=,rgt=cnt[]-;
q[rgt].push_back((node){i,lft});
rep(j,sz-)
{
lft=cnt[j]+;
rgt=cnt[j+]-;
if (lft<=rgt) q[rgt].push_back((node){i,lft});
}
lft=cnt[sz-]+,rgt=;
q[rgt].push_back((node){i,lft});
}
rep(i,maxn)
{
rep(j,(int)l[i].size())
{
int pos = l[i][j];
add(pos,);
}
rep(j,(int)q[i].size())
{
int id = q[i][j].id;
ans[id] += query(i)-query(q[i][j].lft-);
}
}
rep(i,m) printf("%d\n",n-ans[i]);
return ;
}

Codeforce 216 div2的更多相关文章

  1. Codeforce Round #216 Div2

    e,还是写一下这次的codeforce吧...庆祝这个月的开始,看自己有能,b到什么样! cf的第二题,脑抽的交了错两次后过了pretest然后system的挂了..脑子里还有自己要挂的感觉,果然回头 ...

  2. codeforce 192 div2解题报告

    今天大家一起做的div2,怎么说呢,前三题有点坑,好多特判.... A. Cakeminator 题目的意思是说,让你吃掉cake,并且是一行或者一列下去,但是必须没有草莓的存在.这道题目,就是判断一 ...

  3. Codeforce 287 div2 C题

    题目链接:http://codeforces.com/contest/507/problem/C 解题报告:现在有一个满二叉树型的迷宫,入口在根结点,出口在第n个叶节点,有一串命令,LRLRLRLRL ...

  4. codeforce #339(div2)C Peter and Snow Blower

    Peter and Snow Blower 题意:有n(3 <= n <= 100 000)个点的一个多边形,这个多边形绕一个顶点转动,问扫过的面积为多少? 思路:开始就认为是一个凸包的问 ...

  5. Codeforce 220 div2

    D 插入: 在当前指针位置sz处插入一个1,col[sz]记录插入的内容,sz++; 删除i: 找到第i个1的位置,赋为0; 于是转化为一个维护区间和的问题; trick: 如果是依次删除a[0],a ...

  6. Codeforce 218 div2

    D 一开始想错了,试图用"前缀和-容量"来求从上层流下来了多少水",但这是错的,因为溢出可能发生在中间. 然后发现对于每层,溢出事件只会发生一次,所以可以用类似并查集的办 ...

  7. Codeforce 217 div2

    C 假设每种颜色的个数都相同,可以用轮换的方式,让答案达到最大n,当不同的时候,可以每次从每种颜色中取出相同个数的手套来操作; 一直迭代下去直到只剩下1种颜色; 再将这一种颜色与之前交换过的交换就行了 ...

  8. codeforce 459 DIV2 D题

    题意   在一个DAG上面有N个点M条边,每一条边上都有一个小写字母.两个人Max and Lucas 每个人一颗棋子,两个人轮流行棋,当前这一步选择的路上面的字母必须大于等于上一步路上面的字母,当轮 ...

  9. codeforce 382 div2 E —— 树状dp

    题意:给一棵n个结点的无根树染色,求使每个结点距离为k的范围内至少有一个被染色的结点的总染色方法数目 分析:首先我们定义: 对于结点v, 如果存在一个黑色结点u距离v不超过k,则结点v被“控制” 首先 ...

随机推荐

  1. laravel敏捷应用

    App Category Recipes dealing with Laravel's App facade Checking Your Environment Checking if You're ...

  2. [Angular 2] Using Promise to Http

    You can also use Promise for http: So for the service, you need to call toPromise() method: getVehic ...

  3. Python之基础(一)

    数学计算 要利用相关的数学计算函数,首先需要把数学模块包含进来: >>>import math 进行计算: >>> math.pi 3.14159265358979 ...

  4. uploadify3.1 参数 中文详解

    langFile: 'http://www.static-xxx.nu/uploader/uploadifyLang_en.js',//语言包的路径,能设置所有的提示文字 swf: 'http://w ...

  5. C语音指针Introduction.

    指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构: 能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序 ...

  6. 强制转https

    原文:http://blog.csdn.net/wzy_1988/article/details/8549290 需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.co ...

  7. windows身份验证,那么sqlserver的连接字符串的

    Data Source=计算机名称或ip地址;Initial Catalog=数据库名称;Integrated Security=True windows身份验证不需要psw的Provider=SQL ...

  8. 附加数据库报错:无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"

    今天在附加数据库的时候出现如图报错信息: 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问.)"错信息如图:(是不是远程服务器数据库附加出现只读那个情 ...

  9. C#多线程实践——创建和开始使用

    线程用Thread类来创建, 通过ThreadStart委托来指明方法从哪里开始运行.ThreadStart的声明如下: public delegate void ThreadStart(); 调用S ...

  10. Highcharts使用====一些问题记录

    问题1: 图表不显示(但有些浏览器可以显示chrome,IE.火狐不显示),原因可能是前台页面js代码有些问题.highcharts兼容性是比较好的.我遇到的问题是,使用了.replace(/T/, ...