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. wpf在异步中给前台赋值

    wpf,新建异步方法: Thread newThread = new Thread(new ParameterizedThreadStart(GetResult)); newThread.Start( ...

  2. @SuppressWarnings(unchecked)作用解释

    解释一: 屏蔽某些编译时的警告信息 在强制类型转换的时候编译器会给出警告 加上 程序代码 @SuppressWarnings("unchecked") 就不会警告了 解释二: 注释 ...

  3. ios NSString 去除空格和回车

    去除两端空格 NSString *temp = [textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCh ...

  4. UVA10765-Doves and bombs(BCC)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=1706">题目链接 题意:给定一个n个点的 ...

  5. Ubuntu安装配置Qt环境

    安装 QT4.8.6库+QT Creator 2.4.1 下载地址发布 QT4.8.6库  http://mirrors.hustunique.com/qt/official_releases/qt/ ...

  6. HBase学习(十四)LINUX下用Eclipse构建HBase开发环境

    Eclipse,HBase版本号眼下没有发现须要特别指定 1:从HBase集群中复制一份Hbase部署文件,放置在开发端某一文件夹下(如在/app/hadoop/hbase096文件夹下). 2:在e ...

  7. Ubuntu 14.04 下手动安装Firefox的Flash插件

    有时候我们不得不採用手动安装一些软件. Ubuntu 14.04 下手动安装Firefox的Flash插件有下面几步 1. 下载Flash插件 下载地址为http://get.adobe.com/cn ...

  8. [MVC4-基礎] 從資料庫取值顯示在DropDownList中

    剛開始學MVC4,以下是一些基礎的學習筆記! 完成效果像下面這樣,資料來源是既有的Database. 1.Controller public ActionResult Index() { SqlCon ...

  9. document.onclick vs window.onclick

    The JavaScript Window object is the highest level JavaScript object which corresponds to the web bro ...

  10. 填坑 - 使用Entity Framework 6 + Sqlite进行DB first开发

    Sqlite团队也是渣啊,到第6代了还不支持Code First. 1.安装运行环境和组件 .安装SQLite的Visual Studio设计器支持 只有安装了它,在[新建ADO.NET实体数据模型] ...