View Code

  1 #include<stdio.h>
  2 #define Maxn 1000010
  3 int a[Maxn],b[Maxn];
  4 struct Node
  5 {
  6     int l,r;
  7     int sum;//子树最大覆盖
  8     int ant;//本身被覆盖
  9 }node[4*Maxn];
 10 int max(int a,int b)
 11 {
 12
 13
 14
 15     return a=a>b?a:b;
 16
 17 }
 18 void create_tree(int ll,int rr,int u)
 19 {
 20
 21     node[u].l=ll;
 22     node[u].r=rr;
 23     node[u].sum=0;
 24     node[u].ant=0;
 25     if(ll==rr) return;
 26     int mid=(ll+rr)/2;
 27     create_tree(ll,mid,2*u);
 28     create_tree(mid+1,rr,u*2+1);
 29 }
 30
 31 void update(int s,int e,int u)
 32 {
 33
 34     if(s<=node[u].l&&e>=node[u].r)
 35     {
 36         node[u].sum++;
 37         node[u].ant++;
 38         return;
 39
 40     }
 41     int mid=(node[u].l+node[u].r)/2;
 42     if(e<=mid)
 43     {
 44         update(s,e,u*2);
 45         node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant;
 46
 47
 48     }
 49     else if(s>mid)
 50     {
 51         update(s,e,u*2+1);
 52         node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant;
 53     }
 54     else
 55     {
 56         update(s,e,u*2);
 57         update(s,e,u*2+1);
 58         node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant;
 59     }
 60
 61
 62 }
 63
 64 int query(int s,int e,int u)
 65 {
 66
 67     if(s<=node[u].l&&e>=node[u].r)
 68     return node[u].sum;
 69
 70     int mid=(node[u].l+node[u].r)/2;
 71     if(e<=mid)
 72     {
 73         return node[u].ant+query(s,e,u*2);
 74
 75     }
 76     else if(s>mid)
 77     {
 78         return node[u].ant+query(s,e,u*2+1);
 79     }
 80     else return node[u].ant+max(query(s,e,u*2),query(s,e,u*2+1));
 81 }
 82
 83 int main()
 84 {
 85     int t;
 86     int k,n;
 87
 88     scanf("%d",&t);
 89     for(int i=1;i<=t;i++)
 90     {
 91
 92
 93         scanf("%d%d",&k,&n);
 94         create_tree(1,Maxn,1);
 95         for(int j=1;j<=n;j++)
 96         {
 97             scanf("%d%d",&a[j],&b[j]);
 98             b[j]--;
 99         }
100         printf("Case %d:\n",i);
101         for(int j=1;j<=n;j++)
102         {
103             if(query(a[j],b[j],1)<k)
104             {
105                 printf("%d ",j);
106                 update(a[j],b[j],1);
107             }
108
109         }
110         printf("\n\n");
111
112     }
113 }

转载于:https://www.cnblogs.com/1114250779boke/archive/2012/08/29/2662588.html

hdu 3577Fast Arrangement相关推荐

  1. hdu 4109 Instrction Arrangement 拓扑排序 关键路径

    这个算是关键路径的模版题目了,解这个题目之前,首先说下关键路径的含义,传送门(度娘),个人的见解是,关键路径就是木桶的短板问题,比如有一群人约好去某个地方,大家从同一个地方同一时间开始出发,有些人选择 ...

  2. HDU 4109 Instrction Arrangement

    题目链接:https://vjudge.net/problem/HDU-4109 题目大意 有 N 个指令,标号从 0 ~ N - 1,和 M 个指令间的先后关系,每个关系都有一个权值 w,表示后一个 ...

  3. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】带权二分图匹配 KM算法

    HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]最小费用最大流 In the kingdom of Henryy, there are N (2 <= N <= ...

  4. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流

    HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]带权二分图匹配 KM算法 In the kingdom of Henryy, there are N (2 <= N & ...

  5. HDU 1043 Eight(八数码)

    HDU 1043 Eight(八数码) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  6. HDU 4749 Parade Show(暴力水果)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 Problem Description   2013 is the 60 anniversary ...

  7. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  8. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  9. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

最新文章

  1. 分享Kali Linux 2016.2第43周虚拟机
  2. 导入时间过长,请求变成404,导入成功后后台会出现java.io.IOException: 您的主机中的软件中止了一个已建立的连接
  3. 给数据库表字段设置默认值
  4. 看动画轻松理解时间复杂度(一)
  5. 不信不能雷倒你!超牛高考作文
  6. 常用的表单正则表达式
  7. 【Python】第一个程序---Helloworld!
  8. 网络口协商_以太网端口协商原理
  9. Android项目实战(十):自定义倒计时的TextView
  10. union myun { struct{ int x; int y; int z; }u; int k; }a;
  11. 考研词汇测试软件,考研词汇 - 在线打字测试(dazi.kukuw.com)
  12. codevs 4246
  13. 京东工业冲刺港交所:年营收141亿 GGV与红杉中国是股东
  14. 视频H5页面/视频app怎么做?
  15. 红帽认证工程师(RHCE)的发展前景
  16. 推送通知的跳转处理和消息提醒
  17. P6 Vue双向绑定 v-model
  18. 基因驱动 CovEx 代码阅读(一)
  19. 宽依赖和窄依赖_Spark RDD中的依赖关系:宽依赖和窄依赖narrow/widedependency
  20. jquery遍历json数组

热门文章

  1. ajax request headers,ajax request VS normal request
  2. android gradle权威指南pdf_干货 | 携程 Android 10适配踩坑指南
  3. struct结构体和char型数组的相互转化
  4. 学习《apache源代码全景分析》之存储段和存储段组摘录
  5. 【搜索引擎Jediael开发笔记3】使用HtmlParser提取网页中的链接
  6. dojo中的AMD模式开发案例
  7. Flutter 核心原理与混合开发模式
  8. Gradient Boosted Decision Trees详解
  9. 考究Hadoop中split的计算方法
  10. Java多线程(四)之ConcurrentSkipListMap深入分析