hdu 3577Fast Arrangement
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相关推荐
- hdu 4109 Instrction Arrangement 拓扑排序 关键路径
这个算是关键路径的模版题目了,解这个题目之前,首先说下关键路径的含义,传送门(度娘),个人的见解是,关键路径就是木桶的短板问题,比如有一群人约好去某个地方,大家从同一个地方同一时间开始出发,有些人选择 ...
- HDU 4109 Instrction Arrangement
题目链接:https://vjudge.net/problem/HDU-4109 题目大意 有 N 个指令,标号从 0 ~ N - 1,和 M 个指令间的先后关系,每个关系都有一个权值 w,表示后一个 ...
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】带权二分图匹配 KM算法
HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]最小费用最大流 In the kingdom of Henryy, there are N (2 <= N <= ...
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]带权二分图匹配 KM算法 In the kingdom of Henryy, there are N (2 <= N & ...
- HDU 1043 Eight(八数码)
HDU 1043 Eight(八数码) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- HDU 4749 Parade Show(暴力水果)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 Problem Description 2013 is the 60 anniversary ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
最新文章
- 分享Kali Linux 2016.2第43周虚拟机
- 导入时间过长,请求变成404,导入成功后后台会出现java.io.IOException: 您的主机中的软件中止了一个已建立的连接
- 给数据库表字段设置默认值
- 看动画轻松理解时间复杂度(一)
- 不信不能雷倒你!超牛高考作文
- 常用的表单正则表达式
- 【Python】第一个程序---Helloworld!
- 网络口协商_以太网端口协商原理
- Android项目实战(十):自定义倒计时的TextView
- union myun { struct{ 	int x; 	int y; 	int z; }u; int k; }a;
- 考研词汇测试软件,考研词汇 - 在线打字测试(dazi.kukuw.com)
- codevs 4246
- 京东工业冲刺港交所:年营收141亿 GGV与红杉中国是股东
- 视频H5页面/视频app怎么做?
- 红帽认证工程师(RHCE)的发展前景
- 推送通知的跳转处理和消息提醒
- P6 Vue双向绑定 v-model
- 基因驱动 CovEx 代码阅读(一)
- 宽依赖和窄依赖_Spark RDD中的依赖关系:宽依赖和窄依赖narrow/widedependency
- jquery遍历json数组
热门文章
- ajax request headers,ajax request VS normal request
- android gradle权威指南pdf_干货 | 携程 Android 10适配踩坑指南
- struct结构体和char型数组的相互转化
- 学习《apache源代码全景分析》之存储段和存储段组摘录
- 【搜索引擎Jediael开发笔记3】使用HtmlParser提取网页中的链接
- dojo中的AMD模式开发案例
- Flutter 核心原理与混合开发模式
- Gradient Boosted Decision Trees详解
- 考究Hadoop中split的计算方法
- Java多线程(四)之ConcurrentSkipListMap深入分析