UNR7

那些你不要的

注意到操作不改变位置下标的奇偶性,即最终答案必然在初始下标为奇数的数中

同时,每次操作恰可删除其中任意一个,进而答案即这些数的中位数(若偶数个则取较大项)

用nth_element实现即可,时间复杂度为O(n)


比特迷宫

从大到小枚举k[0,n],并调整(二进制下)恰包含k1的位置:

钦定s=a+b恰包含k+11,取a为将s中若干位变为0,即可翻转对应的恰包含k1的位置

换言之,仅需构造一个s的集合,使得其可以"覆盖"所有恰包含k1的位置

这可以贪心实现,即每次选择能能额外覆盖最多位置中最小s,最终s的总数为157884

另外,这还会翻转s自身,这仅需在之前的调整中将其设为1即可

时间复杂度为O(n22n+3n)


璀璨宝石

当第i次购买发展卡时,在[1,i]中恰剩一张卡未选,并需在其与i+1间决策

考虑暴力DP,定义fi,j,a,b,c,d,e表示所剩的卡为j且还需要a,b,c,d,e个宝石的答案

  • a,b,c,d,e中仅存在一项非0,此类状态可直接表示

  • 否则,即其中任意非0两项配对后均严格劣,进而存在一项使得仅包含其与其余项的配对

    此时,状态仅取决于该项编号其余项的数量和

状态数为O(Cn2m)(其中C=5),并考虑转移:

  • 对于第一类状态,枚举新的宝石编号,转移即形如

    i[l,r],2(il),fi=min(fi,si2)

    可以用单调队列优化但实际上直接暴力就能过了

  • 对于第二类状态,配对方式唯一,可以直接转移

时间复杂度为O(C2n2m)


火星式选拔

对于前k1大的bi,其总能加入且不会作为最小的bi删除,必然在最终答案中

在最后一个前k大的bi加入前,其余k1个均在答案中,进而加入后答案恰为这k

对于第k大的bi,在此后找到第一个biaj,即转换为k=1的子问题,倍增即可

时间复杂度为O(nlogn)


反重:求熵

钦定x0=0,并将限制转换为0i<jn,Li,jxjxiRi,j

当确定x0,...,xn1后,xn的范围即[max0i<nxi+Li,n,min0j<nxj+Rj,n]

枚举取到max,mini,j(多个取最小),即要求0k<n,{xk+Lk,n+[k<i]xi+Li,nxk+Rk,nxk+Lk,nxj+Rj,nxk+Rk,n[k<j]

此时即为x0,x1,...,xn1的子问题,且每组方案对答案的贡献为xn[xi+Li,n,xj+Rj,n]1

重复此过程,维护答案多项式f(x0,x1,...,xn),每次即求xn[l,r]f(x0,x1,...,xn)

预处理出gk(x)=i=1xik,并将xnkgk(r)gk(l1)代替即可,时间复杂度为O(C(n!)2)

同时,注意到i,j间独立,时间复杂度为O(Cn!2n)(其中C为多项式项数)


鸽子收费站

为了方便,以下认为n,q同阶,并将所有区间右端点+1

用set维护每个位置上的极长不可通过区间,则整个过程中共有O(n)个区间

同时,不妨将这些区间看作在不同的位置上,问题即转化为:

给定O(n)个区间,初始均未被"激活",每次操作支持:

  • 改变一个区间的"激活"状态
  • 给定k,l,r,依次对[l,r]内被激活的区间[x,y)执行k={yxk<ykotherwise

另外,通过对此进一步离线,即转化为题解中所述的问题

对序列分块,记块大小为K=n,当单点修改时重构,即需对整块实现快速查询

块内本质不同的值仅O(K)个,可以预处理出每个值的答案

具体的,顺序枚举被激活的区间,维护当前可能被得到的答案以及对应的初始值(区间)

此时,操作即将[x,y)内的答案均合并到y,可以用bitset实现此过程,单次复杂度为O(K2w)

查询时,将该数二分到对应的序列的(非严格)前驱,即为该数的答案(特别的,若不变仍为自身)

(对所有数)离散化后再次离线,可以在空间复杂度仍为O(n)个基础上去掉这个二分的log

时间复杂度为O(nn+n2w)

posted @   PYWBKTDA  阅读(407)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2020-07-21 [nowcoder5669H]Harder Gcd Problem
2020-07-21 [loj2479]制胡窜
2020-07-21 [nowcoder5667K]Keyboard Free
点击右上角即可分享
微信分享提示