zoukankan      html  css  js  c++  java
  • 《<遇到困难睡大觉>命题报告》学习笔记

    简要题意

    给定 (n,k,{(a_i,b_i)}_{i=1}^n),求出 (max{min_{i=1}^n{a_{p_i}+ik}-max_{i=1}^n{b_{p_i}+ik}|pin mathfrak{S}_n})(1leq a_i,b_ileq 10^9,knleq 10^9,1leq nleq 10^5)

    题解

    答案等价于 (max{min_{i=1}^n{a_i+q_ik}-max_{i=1}^n{b_i+q_ik}|qin mathfrak{S}_n})。进一步地,可以发现答案只与排列中的相对位置有关,于是 (q) 可以取数轴上的任意一段连续的 (n) 个整点(不妨设为 ([t,t+n-1]capmathbb{Z}))而不影响答案。

    考虑枚举 (M=max{b_i+q_ik}),可以得到 (q_i) 的上界:(forall i,q_ileq r_i=leftlfloorfrac{M-b_i}{k} ight floor)。根据贪心策略,此时选择最大的有解的 (t) 一定最优。由 Hall 定理,此时 (t=min_{i=1}^n{r_i-i+1})。同时,注意到当 (M) 增加 (k) 时,(r_i)(t) 都会增加 (1),于是可以只在 ([0,k-1]) 的范围内枚举 (M)

    二分答案 (mid),枚举 (Min[0,k-1]),可以得到 (q_i) 的上下界:(forall i,l_i=max{leftlceilfrac{M+mid-a_i}{k} ight ceil,t}leq q_ileq r_i=min{leftlfloorfrac{M-b_i}{k} ight floor,t})。由 Hall 定理,此时有解当且仅当不存在一个区间 ([l,r](lleq r)),使得 (s(l,r)>r-l+1),其中 (s(l,r)) 表示被 ([l,r]) 包含的 ([l_i,r_i]) 区间个数。

    注意到 (t)(M)(0)(k-1) 枚举的过程中只会增加 (1)(或不变),不妨设为从 (t') 变为 (t'+1),变化的时间为 (tt)(若不变,则为 (infty))。接下来,只需要分别对 (Min[0,tt-1],t=t')(Min[tt,k-1],t=t'+1) 分别判断即可。

    考虑对 (Min[L,R]) 和确定的 (t) 进行判断。注意到 (R-L+1<=k),于是 (l_i,r_i)(M)(L)(R) 枚举的过程中只会增加 (1)(或不变),不妨分别设为从 (l_i',r_i') 变为 (l_i'+1,r_i'+1),变化的时间为 (tl_i,tr_i)(若不变,则为 (infty))。

    (r_i) 进行排序。记 (q(i,j)=r_j-l_i+1-s(l_i,r_j)),那么有解当且仅当不存在 (i<j) 使得 (q(i,j)<0)。注意到 (l_i) 之间、(r_i) 之间的相对顺序不会改变,于是 (s(l_i,r_j)) 不会改变。那么只需要对 (q'(i,j)=r_j'-l_i'+1-s(l_i,r_j)) 进行分类讨论:

    • (q'(i,j)<-1) 时,恒非法
    • (q'(i,j)=-1) 时,当且仅当 (tr_jleq M<tl_i)合法
    • (q'(i,j)=0) 时,当且仅当 (tl_ileq M<tr_j)非法
    • (q'(i,j)>0) 时,恒合法

    注意到固定 (j) 时,同种限制取最小的 (tl_i) 一定最紧。于是可以从小到大枚举 (r_j'),用线段树维护 (q'(i,j)) 的最小值和次小值以及此时分别对应的最小的 (tl_i)(这样当不存在 (q'(i,j)<-1) 的情况时能得到所有限制)。

    最终会得到 (O(n)) 个限制,对于 (q'(i,j)=-1) 得到的限制可以轻松求出它们的交,然后将 (q'(i,j)=0) 得到的限制排序后和前面求得的交进行对称差判断即可。

    时间复杂度 (O(nlog nlog A)),其中 (A) 是答案的值域大小(此题中为 (2 imes10^9))。

  • 相关阅读:
    [HDU 2089]不要62
    [WC 2011]Xor
    [BJOI 2011]元素
    [NOIp 2014]解方程
    [UVa 1326]Jurassic Remains
    [BZOJ 2152]聪聪可可
    [IOI 2011]Race
    [测试题]打地鼠
    [POJ 2828]Buy Tickets
    [测试题]gene
  • 原文地址:https://www.cnblogs.com/Y25t/p/15344543.html
Copyright © 2011-2022 走看看