首页 > 其他分享 >JOISC2017 门票安排

JOISC2017 门票安排

时间:2023-02-22 19:25:29浏览次数:49  
标签:JOISC2017 覆盖 ++ max 安排 门票 区间 翻转

肯定先考虑二分答案,判定能不能全部不超过 \(w\)。

钦定不走 \(n\rightarrow1\) 的边,接着翻转若干区间。

翻转一个区间的变化是 \([1,l)++,[l,r)--,[r,n]++\)。

注意到翻转两个不交的区间一定不优,所以所有被翻转的区间交非空。

令交为 \([x,y]\),边初始被覆盖 \(a_i\) 次,翻转后覆盖 \(b_i\) 次,\(b_t\) 为 \([x,y]\) 中 \(b\) 的最大值。

观察到 \(b_t\) 和 \(\max b_i\) 应该是差不多大的,具体来说是:\(b_t\ge\max b_i-1\)。否则可以同时取消翻转一个 \(l=x\) 和 \(r=y\) 的区间,答案不会更劣。

于是有 \(\max a_i=a_t\),因为 \([x,y]\) 中 \(a_t\) 肯定是最大的,而其它地方少翻转若干次,却最多大 \(1\)。

确定了 \(a_t\) 和 \(w\),可以算出被翻转的区间个数 \(a_t-w\) 或 \(a_t-w+1\)。显然钦定了仍满足可二分性。

那么只需要从 \(1\) 到 \(t\) 扫过去,算出每个位置至少被覆盖多少次,然后尽量选 \(r\) 最大的,用大根堆维护即可。

代码:https://loj.ac/s/1707619

标签:JOISC2017,覆盖,++,max,安排,门票,区间,翻转
From: https://www.cnblogs.com/shrshrshr/p/17145184.html

相关文章

  • 代码随想录算法训练营第三十天 | 332.重新安排行程,51. N皇后,37. 解数独,总结
    Day29休息~一、参考资料重点!!回溯算法总结篇https://programmercarl.com/%E5%9B%9E%E6%BA%AF%E6%80%BB%E7%BB%93.html组合问题:N个数里面按一定规则找出k个数的集......
  • 合理安排kafka的broker、partition、consumer数量
    broker的数量最好大于等于partition数量一个partition最好对应一个硬盘,这样能最大限度发挥顺序写的优势。一个broker如果对应多个partition,需要随机分发,顺序IO会退化成随......
  • 51nod 1428活动安排问题
    有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  收起输入第一行一个正整数n(n<=10000)代表活动......
  • C/C++保安排班管理系统[2023-02-04]
    C/C++保安排班管理系统[2023-02-04]学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为......
  • 算法刷题 Day 30 | ● 332.重新安排行程 ● 51. N皇后 ● 37. 解数独
    详细布置今天这三道题都非常难,那么这么难的题,为啥一天做三道?因为一刷也不求大家能把这么难的问题解决,所以大家一刷的时候,就了解一下题目的要求,了解一下解题思路,......
  • 法定节假日安排表 判断是否工作日
    每年年底根据国务院办公厅节假日安排通知,组成以下表结构,生成表数据。CREATETABLE`法定节假日安排表`(`id`int(11)NOTNULLAUTO_INCREMENT,`年度`int(11)NULL......
  • BRD:根据渠道安排随机分配置靓号实现
    --BRD:根据渠道安排随机分配置靓号--CreatetablecreatetableT_LUCKY_ITEM(BILL_IDVARCHAR2(20),BILL_LEVELVARCHAR2(10),ORG_IDVARCHAR2(20),......
  • 332. 重新安排行程
    通过图论的相关知识可知,题目的要求是通过已知条件建立一个欧拉通路,最常用的算法是Hierholzer算法。Hierholzer算法Hierholzer算法给出一种基于dfs寻找欧拉回路的算法ste......
  • 疫情全面放开,“阳”了之后如何高效安排员工居家办公?
    随着疫情防控常态化工作的实施,居家办公或者混合办公将成为很多企业的常态,企业管理者们从最初考虑如何开展远程办公,开始转变为怎么能将远程办公做得更好。而如何在远程办公中......
  • C/C++值班安排系统
    C/C++值班安排系统值班安排系统一、系统要求1、问题描述某公司的保安人员由于工作需要进行轮休制度,一星期中每个岗位每人休息一天。预先让每一个人选择自己认为合适的......