线段树,排序。

按照$R$从小到大排序之后逐个检查,如果$L$,$R$最大值不超过$2$,那么就把这个区间放进去,区间$+1$,否则不能放进去。

#include<bits/stdc++.h>
using namespace std; int T,n,sz;
int a[];
struct X { int L,R,id; }s[];
int f[],m[];
int P; bool cmp(X a,X b)
{
return a.R<b.R;
} int get(int x)
{
int ll=,rr=sz,res;
while(ll<=rr)
{
int mid = (ll+rr)/;
if(a[mid]>x) rr=mid-;
else if(a[mid]==x) return mid;
else ll=mid+;
}
} void pushDown(int rt)
{
if(f[rt]==) return ;
f[*rt]+=f[rt];
f[*rt+]+=f[rt];
m[*rt]+=f[rt];
m[*rt+]+=f[rt];
f[rt]=;
} void update(int L,int R,int val,int l,int r,int rt)
{
if(L<=l&&r<=R)
{
f[rt]+=val;
m[rt]+=val;
return ;
} pushDown(rt);
int mid = (l+r)/;
if(L<=mid) update(L,R,val,l,mid,*rt);
if(R>mid) update(L,R,val,mid+,r,*rt+);
m[rt] = max(m[*rt],m[*rt+]);
} void query(int L,int R,int l,int r,int rt)
{
if(L<=l&&r<=R)
{
P=max(P,m[rt]);
return ;
} pushDown(rt);
int mid = (l+r)/;
if(L<=mid) query(L,R,l,mid,*rt);
if(R>mid) query(L,R,mid+,r,*rt+);
m[rt] = max(m[*rt],m[*rt+]);
} void build(int l,int r,int rt)
{
m[rt] = ;
f[rt] = ;
if(l==r) return ; int mid = (l+r)/;
build(l,mid,*rt);
build(mid+,r,*rt+);
} int ans[],q; int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
sz=;
for(int i=;i<=n;i++)
{
scanf("%d%d",&s[i].L,&s[i].R);
sz++; a[sz]=s[i].L;
sz++; a[sz]=s[i].R;
} sort(a+,a++sz); for(int i=;i<=n;i++)
{
s[i].L=get(s[i].L);
s[i].R=get(s[i].R);
s[i].id=i;
} sort(s+,s++n,cmp); q=; build(,sz,); for(int i=;i<=n;i++)
{
P=;
query(s[i].L,s[i].R,,sz,);
if(P==)
{
ans[q++]=s[i].id;
continue;
}
else update(s[i].L,s[i].R,,,sz,);
} sort(ans,ans+q);
printf("%d\n",q);
for(int i=;i<q;i++)
{
printf("%d",ans[i]);
if(i<q-) printf(" ");
}
printf("\n"); }
return ;
}

ZOJ 3953 Intervals的更多相关文章

  1. ZOJ - 3953 Intervals 【贪心】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3953 题意 给出N个区间,求去掉某些区间,使得剩下的区间中,任何 ...

  2. Intervals ZOJ - 3953 (区间贪心)

    Chiaki has n intervals and the i-th of them is [li, ri]. She wants to delete some intervals so that ...

  3. ZOJ 3953:Intervals(优先队列+思维)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5572 题意:给出n个线段,问最少删除几个线段可以使得任意一个点不会被三个以上的 ...

  4. POJ 1201 &amp; HDU1384 &amp; ZOJ 1508 Intervals(差分约束+spfa 求最长路径)

    题目链接: POJ:http://poj.org/problem?id=1201 HDU:http://acm.hdu.edu.cn/showproblem.php? pid=1384 ZOJ:htt ...

  5. 扫描线(线段树)+贪心 ZOJ 3953

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5572 Intervals Time Limit: 1 Second       ...

  6. zoj 1508 Intervals (差分约束)

    Intervals Time Limit: 10 Seconds      Memory Limit: 32768 KB You are given n closed, integer interva ...

  7. poj 1201/zoj 1508 intervals 差分约束系统

      // 思路 : // 图建好后 剩下的就和上一篇的 火烧连营那题一样了 求得解都是一样的 // 所以稍微改了就过了 // 最下面还有更快的算法 速度是这个算法的2倍#include <ios ...

  8. zoj3953 Intervals 最大不重叠区间加强版 zoj排名第一~

    Intervals Time Limit: 1 Second      Memory Limit:65536 KB      Special Judge Chiaki has n intervals ...

  9. zoj 1508 poj 1201 Intervals

    差分约束系统. #include<cstdio> #include<cstring> #include<cmath> #include<vector> ...

随机推荐

  1. [转]memmove、memcpy和memccpy

    原文地址:http://www.cppblog.com/kang/archive/2009/04/05/78984.html 在原文基础上进行了一些小修改~ memmove.memcpy和memccp ...

  2. python学习笔记(十四)之字典

    字典:是python中唯一的映射类型,字典中每一项都是由键-值对组成的项.字典中没有索引,只有键和值.键的类型可以是整型,变量或字符串. 创建和访问字典: >>> dict1 = { ...

  3. jQuery实现简单前端搜索功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. python中随机数生成

    1.random.random random.random()用于生成一个0到1的随机符小数: 0 <= n < 1.0 2.random.uniform random.uniform的函 ...

  5. struts2 constant详解

    <!-- 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法 -->        <constant nam ...

  6. mysq配置

    mysql运维 1.mysql配置文件:/etc/my.cnf mysql日记文件 :安装时候配置的,可以通过ps aux|grep mysqld 查询 ps aux|grep mysqld mysq ...

  7. 内存不够清理方法,costdown项目时如果裁剪不下来,也可以参考

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  8. 匿名函数、lambda表达式

    匿名函数 func = lambda x: y #x是形参,y是返回值 键字lambda表示匿名函数,冒号前面的x表示函数参数,冒号后面的y表示匿名函数的返回值. 例1:返回列表中长度大于等于3的元素 ...

  9. Python中的raw_input()和input()

    raw_input()和input()都是python中的内建函数,用于读取控制台用户的输入,但有所区别: [nr@localhost conf]$ python Python 2.7.5 (defa ...

  10. JavaScript变量命名规则:匈牙利命名法

    匈牙利命名法语法 变量名=类型+对象描述 类型指变量的类型 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解. 提示 虽然JavaScript变量表面上没有类型,但是Jav ...