【题解】[APIO2009]会议中心】的更多相关文章

[题解][P3626 APIO2009]会议中心 真的是一道好题!!!刷新了我对倍增浅显的认识. 此题若没有第二份输出一个字典序的方案,就是一道\(sort+\)贪心,但是第二问使得我们要用另外的办法. 考虑到题目的性质,贪心地想,假如我们已经选择了区间\(i\),我们就可以盖将自其变者而观之,则天地曾不能以一瞬:自其不变者而观之,则物与我皆无尽也,而又何羡乎!确定下一个是谁,虽世殊事异,所以兴怀,其致一也,而且不用关心其他的情况,也就是说,下一个选择是确定的! 考虑暴力存下来我是下\(i\)个…
P3626 [APIO2009]会议中心 题目描述 Siruseri 政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很 感兴趣,他们希望能够在里面举行会议. 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂. 会议中心的销售主管认为:最好的策略应该是将会堂租借给尽可能多的客户. 显 然,有可能存在不止一种满足要求的策略. 例如下面的例子.总共有 4 个公司.他们对租借会堂发出了请求,并提出了 他们所需占用会堂的起止日期(如下表所示). 开始日期 结束日期 公司1 4…
[APIO2009]会议中心 题目大意: 原网址与样例戳我! 给定n个区间,询问以下问题: 1.最多能够选择多少个不相交的区间? 2.在第一问的基础上,输出字典序最小的方案. 数据范围:\(n \leq 2\times 10^5\) 前言:几个小 \(tips\) 对于字典序最小的构造题,一个套路: 以字典序从小到大枚举,依次检查每个元素是否可以计入答案. 然后是两个函数的辨析: \(lower\_ bound(x)\):返还第一个大于等于\((\ge)\)\(x\)的位置. \(upper\_…
传送门 好迷的思路-- 首先,如果只有第一问就是个贪心,排个序就行了 对于第二问,我们考虑这样的一种构造方式,每一次都判断加入一个区间是否会使答案变差,如果不会的话就将他加入别问我正确性我不会证 我们先把所有的区间按左端点排个序顺便把互相包含的区间去掉(毕竟互相包含的时候短的肯定比长的优),然后把所有已经被选的区间加入一棵set,然后在里面查找它左右两边的区间\([l1,r1]\)和\([l2,r2]\),那么如果选了这个区间就会影响\([l1+1,r2-1]\),设\(s[i][j]\)表示从…
BZOJ 洛谷 \(Description\) 给定\(n\)个区间\([L_i,R_i]\),要选出尽量多的区间,并满足它们互不相交.求最多能选出多少个的区间以及字典序最小的方案. \(n\leq2\times10^5\). \(Solution\) 第一问随便做. 对于第二问,从小到大枚举区间\([l_i,r_i]\),我们需要判断此时能不能选\([l_i,r_i]\). 在之前选的区间中,设在\(i\)左边离\(l_i\)最近的区间的右端点是\(L\),在\(i\)右边离\(i\)最近的左…
传送门 只有第一问就比较水了 每一次贪心地选择当前可以选择的所有线段中右端点最短的,排序之后扫一遍即可. 考虑第二问.按照编号从小到大考虑每一条线段是否能够被加入.假设当前选了一个区间集合\(T\),当前正在考虑第\(i\)个区间\((l_i,r_i)\)能否被加入.假如集合\(T\)中存在一个区间\((l_j,r_j)\)与\((l_i,r_i)\)有交,那么显然这个区间不能被放进去. 如果说不存在这样的区间,考虑集合\(T\)中区间\((l_i,r_i)\)的前驱\((l_p,r_p)\)和…
BZOJ原题链接 洛谷原题链接 第一个问题是经典的最多不相交区间问题,用贪心即可解决. 主要问题是第二个,求最小字典序的方案. 我们可以尝试从\(1\to n\)扫一遍所有区间,按顺序对每一个不会使答案变差的区间都尝试着去填,这样就可以保证方案的字典序最小. 考虑如果快速判断该区间是否能成为最优解,开头先按右端点从小到大排序,左端点从大到小排序,再去除有包含关系的区间,这样使得讨论更为简单. 设待插入的区间为\([r,l]\),该区间左边的第一个已插入的区间的右端点为\(L\),右边的第一个已插…
很优美的解法. 推荐大佬博客 如果没有保证字典序最小这一个要求,这题就是一个水题了,但是要保证字典序最小,然后我就不会了…… 如果一条线段能放入一个区间$[l', r']$并且不影响最优答案,那么对于这条线段$[l, r]$,设$solve(l, r)$表示$[l, r]$这个区间里面最多能放多少条线段,一定要有条件$solve(l', l - 1) + solve(r + 1, r') + 1 == solve(l', r')$. 那么贪心的时候顺便考虑一下怎么检验的问题就可以了,如果暴力检验…
题面 传送门:https://www.luogu.org/problemnew/show/P3626 Solution 如果题目只要求求出第一问,那这题显然就是大水题. 但是加上第二问的话.......那这题就成为大(du)火(liu)题了. 对于第一问:求一整个区间的最大线段总数,我们可以很轻松的切掉. 怎么处理第二问呢? 我们可以考虑这样做: 对于一条线段,如果它属于答案的一部分,那么它一定会有以下性质: 区间③的最大线段数 = 区间①的最大线段数 + 区间②的最大线段数 + 1(当前线段)…
贪心 如果不考虑字典序的话,直接按右端点排序,能选就选,就可以算出ans…… 但是要算一个字典序最小的解就比较蛋疼了= = Orz了zyf的题解 就是按字典序从小到大依次枚举,在不改变答案的情况下,能加进来就加. 但我想错的地方是:如果第 i 个可以在某个最优解的情况下就加入它(即判断[1,n]).但这样最后得到的可能并不是一组合法解. 所以用set维护前驱后继,判断[l,r]这一段才可以…… P.S.BZOJ200题留念 /***********************************…
1178: [Apio2009]CONVENTION会议中心 https://lydsy.com/JudgeOnline/problem.php?id=1178 分析: set+倍增. 首先把所有有包含的去掉,只保留包含的最小的边(如果两条线段中的一条包含另一条,那么保留被包含的)然后此时就可以直接贪心了.直接从一条边找不想交的下一条边.然后就行了(因为此时没有包含的,左端点递增,右端点递增). 因为每条边的下一条是唯一的,那么可以倍增维护往后走2^i步,到的点.此时可以快速知道任意一段区间的最…
[Apio2009]CONVENTION会议中心 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1130  Solved: 444[Submit][Status][Discuss] Description Siruseri政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议 . 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂.会议中心的销售主管认为:最好 的策略应该是将会堂租借给尽可能多…
本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description Siruseri政府建造了一座新的会议中心.许多公司对租 借会议中心的会堂很感兴趣,他们希望能够在里面举行会议. 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂.会议中心的销售主管认为:最好的策略应该是将会堂租借给尽可能多的客户.显然,有 可能存在不止一种满足要求的策略. 例如下面的例子.总共有4个公司.…
会议中心 思路 这一题的正解是倍增的,但是由于我太蒟蒻了,所以我选了一个不算正解但是有可以拿满分的题目学习 思路和我考场上其实差不多,只是我无法实现.... 下面我先来介绍几个数组的用途 1.s,s数组代表的是枚举的i时,包括i区间在内最多有多少个区间 2.p数组,p[i]记录的是在这一区间和这一区间之前,字典序最小的并且满足使区间数最多的区间的位置 3.而pr数组代表的是由哪一个区间+1转移过来的...(大概是这个意思,表达能力不是很好) 然后我们就要讨论情况了 第一种情况是我们对这个区间有更…
1178: [Apio2009]CONVENTION会议中心 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 812  Solved: 323[Submit][Status][Discuss] Description Siruseri政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议. 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂.会议中心的销售主管认为:最好的策略应该是将会堂租借给尽…
算法训练 会议中心 时间限制:2.0s 内存限制:512.0MB 会议中心 Siruseri政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议. 对于一个客户而言,仅当在开会时能够独自占用整个会堂,他才会租借会堂.会议中心的销售主管认为:最好的策略应该是将会堂租借给尽可能多的客户.显然,有可能存在不止一种满足要求的策略. 例如下面的例子.总共有4个公司.他们对租借会堂发出了请求,并提出了他们所需占用会堂的起止日期(如下表所示). 上例中,最多将会堂租借给…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1178 题意概括 一堆线段,现在取出最多条数,使其互不覆盖,并输出字典序最小的方案. 题解 这题好坑. 首先,注意一点,最后不能有多余的空格. 第一问就是基础的线段覆盖. 关键在于第二问. 我们要准备一个函数—— Get_Ans(L,R),用来求解L~R这个区间内,最多可以取多少线段. 这个可以O(log n)解决.前提是倍增预处理. 然后就是关键部分. 我们按照字典序从小到大,能选择就选择. 怎…
http://www.lydsy.com/JudgeOnline/problem.php?id=1178 (题目链接) 题意 给出n个区间,问在区间两两不相交的情况下最多能选出多少区间,并输出字典序最小的方案. Solution 考试看错题,,还有60分..很巧妙的一道题. 如果只有第一问,相信大家都会做,直接左端点排序然后从左往右扫一遍贪心即可.这道题的难点就在于如何求字典序最小的方案. 我们考虑这样一种构造方法,每次检查将区间T加入答案集会不会使答案更差,如果不会,那么就将它加入.这样子的构…
这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取. 但是这个题要求选取的线段排序之后序号的字典序最小. 那么我们如果按序号贪心地从大往小往里放, 那么对于第k个线段,我们考虑放进去之后是能是还能保证所取的线段个数能 达到最大, 我们考虑函数cal(l, r) 表示坐标轴上l 到 r 最多能选取多少线段,第k条线段的左右端点是l, r, 它左边第一条是l1, r1 它右边第一条是l2, r2, 那么k能放进去的充分必要条件就是cal(r1 + 1, l2…
数组若干+手动二分一个的算法,bzoj rank8 ===============================废话分割线=================================== 我我我我我!一定要说一下我的心路历程!我只用了几个数组和一个手动二分!在洛谷和bzoj都过了所以应该是对的!(跑的挺快甚至和学长合了影 事情是这样的,我首先在洛谷瞎贪心贪了55,然后调不出来去看正解,发现好麻烦啊,同时觉得我的贪心还挺对的,于是搞了一份标程拍,拍着拍着就拍出错了,发现判断字典序不太对,我…
http://www.lydsy.com/JudgeOnline/problem.php?id=1178 这道题想了好久没想明白,倍增数组通过看题解很快就明白了,但是一小段区间内应有的最多线段数一直不知道怎么记录. 后来聪哥提醒我才明白,直接getans(l,r)不就完了吗_(:з」∠)_根本不用记录啊QwQ 我用splay维护线段的位置顺序,查找前驱后继等等.上午因为懒得写插入线段前判断线段将要覆盖的区间是否是空的,所以又写了一棵线段树.然后因为一个自以为是线段树写残了的错误,就把线段树删了Q…
贪心地,可以建出一棵树,每个区间对应一个点,它的父亲是它右边的.与它不相交的.右端点最小的区间. 为了方便,再加入一个[0,0]区间 于是就可以倍增来做出从某个区间开始,一直到某个右界,这之中最多能选多少区间 这样的话,可以从[0,0]区间,倍增做出第一问的答案 考虑第二问,我们需要尽量选编号小的区间,于是只要判断我们如果选了这个区间 还能不能选够那么多就可以了 而且前面已经选过的就钦定住了 开一个set来放下已经选过的区间,按左端点从小到大排序 为了方便,一开始先把[0,0]区间和[inf,i…
题目要求最长边最小的生成树.好吧,这就是一道kruskal MST题. #include <bits/stdc++.h> const int maxn = 50000; const int maxm = 100000; using namespace std; struct tEdge { int u, v; int t; bool operator < (const tEdge &y) const { return t < y.t; } }; tEdge edge[max…
考虑用f[i][j]表示以i为起点(i是时间,所以要离散)选$2^j$条线段(这里不是时间)最小的终点,预处理用倍增的方式来求即可预处理出这个数组后,就可以很快的求出在$[l,r]$的时间内最多能选多少条线段,类似于树上的倍增(注意判断超过最大时间的情况)然后从前往后枚举每一段时间,考虑能否加入,当且仅当其分割的那个区间的两部分的答案之和+1=原区间的答案,找区间可以用两个set(分别维护起点和终点)来搞 1 #include<bits/stdc++.h> 2 using namespace…
贪心(qwq)习题题解 SCOI 题解 [ SCOI2016 美味 ] 假设已经确定了前i位,那么答案ans一定属于一个区间. 从高位往低位贪心,每次区间查找是否存在使此位答案为1的值. 比如6位数确定了前三位\((101...)_2\),下一位应该是1 那么\(a_i+x_i\)的查找区间为:\([(101100)_2,(101111)_2]\) ,同理如果应该是0则为\([(101000)_2,(101011)_2]\). 注意到有区间\([l,r]\)范围的限制所以用主席树维护即可. […
[题解][P2161 SHOI2009]会场预约 题目很像[[题解]APIO2009]会议中心 \(set\)大法好啊! 然后我们有个小\(trick\)(炒鸡帅),就是如何优雅地判断线段交? struct E{ int l,r; E(int a,int b){l=a,r=b;} inline bool operator <(const E&a)const{return r<a.l;} }; 真的太帅了!!我思维不行啊!!别人太强了! 众所周知,只要知道一个小于号,就知道所有的逻辑运算…
各种填坑资料(qwq) 主席树(by YL)戳 树套树(by ZSY)戳 不要问我这些题咋来的(查大佬的水表呗) 题目列表: [HDU5977]Garden of Eden [BZOJ2752][HAOI2012]高速公路 [SPOJ TLE]Time Limit Exceeded [NOI2008]假面舞会 [BZOJ3460] Jc的宿舍 [Luogu1456]Monkey King [HNOI2007]紧急疏散evacuate [BZOJ2442]修建草坪 [SCOI2012]滑雪与时间胶…
来自FallDream的博客,不经允许,请勿转载,谢谢. ------------------------------------------------------ 1.Oil 给定一个n*m的矩阵,你要从中选出恰好3个k*k的不想交的矩阵,并使得矩阵数字的和最大.n,m<=1500 题解:很显然,三个矩阵只有两种排布方案:1)先横着或者竖着割成两段,然后在其中一边再分成两段.3)横着或者竖着分成三段. 所以我们用A[i][j]表示前i行j列选一个的最大值,其他三个角同理,然后处理一下横着和竖…
作为普通码农一枚,Qcon是俺参与过的最高级的技术大会了.大会共历时三天,因为俺第二天就得赶火车休个五一大长假,所以只参加了第一天4/25号的会议(其他俩天自然有其他同事会去观摩),不过第一天的会议有俺很喜欢的老池(@池建强)组织出品的专题,所以俺参加会议的目标这这么愉快的定下拉. 还是得先感谢给俺票票的经理@狸姑娘,也终于幸运见到了<MacTalk>作者本尊,让俺也当了一把小小的追星族哈.同时也厚着脸皮搭讪,与Mac君进行了正式友好.亲切的交流:) 五一休假后需要给组内同学分享一些在Qcon…
2016年各类大会让人应接不暇,技术圈儿最不缺的就是各种大会小会,有的纯干货,有的纯广告.作为一名技术开发者,参加了几场大会,你是不是也开始思忖:究竟哪些会议才值得参加?下面活动家为你推荐几场2017年不可错过的精彩大会. WOT2017全球架构与运维技术峰会 CTO训练营关键词:技术管理除了技术上的难题,也会面临搭班子定战略带队伍的困扰.这里是个更重情商管理的课堂,出入这里的人, 不是"领导"不聚头. 英雄汇晚宴关键词:社交专场搭建一个用户与讲师.用户与用户面对面沟通的平台,让更多的…