20241003校模拟

A#

纪念一下本人在校模拟用线段树优化dp单杀*900。

最小和最大没有本质区别,这里只讨论最小的情况。

fi 表示前缀 i 的答案,显然是要枚举 j 使得 (j,i] 合并成一段:

fi=min(fj+sisjx)

其中 si=i=1iai

想办法把 i,j 的贡献拆开,再用数据结构优化转移。

显然有 sisjx=sisjx+[sisj(modx)],对于下取整,我们有广为人知的结论:

sisjx=sixsjx[(sjmodx)>(simodx)]

证明也很简单,对于三种不等关系讨论一下即可。

两者结合一下:

sisjx={sixsjx+1(sjmodx)<(simodx)sixsjxotherwise

把所有 simodx 离散化,用线段树优化转移即可。submission

B#

存在平凡的构造使得权值为零:1 向其他点连 di 的边,任意 i>11di 的边。

几条显而易见的性质:

  • i 不能向 djdij 连负权边,否则 di+w<dj,不满足最短路的限制。
  • i 最多向 dj<dij 连权值为 djdi 的边,否则出现负环(不满足最短路限制)。

因此,我们得到了答案的下界:

(i=1ndi)+(dj<didjdi)

那么是否存在一组构造能达到下界呢?

d 排序,ii+1di+1di 的边,所构成的一条链显然满足初始限制。

每个 i 对于 j<idjdi 的边,一定不会出现负环,且始终满足最短路的限制,这样就达到了下界。

submission

C#

把第一次染色的颜色作为根,枚举根,对每种情况分别求一下答案,最后除以 n(第一步是等概率的)。

考虑 u>v 对整棵树的贡献 e(u,v)=p(u,v)×1=p(u,v),设 l=lca(u,v)

l 未被染色时,局面可以是任意的;当 u,v 都已经染色后,局面也可以是任意的。

全局的概率是 1,不对 p(u,v) 产生影响,只要考虑 l 被染色到 v 被染色之间的这一过程。

我们称 (u,v) 简单路径上的点是关键的。

一旦 l 被染色,每次操作染色集合有 p 的概率向 u 逼近一步,p 的概率向 v 逼近,12p 的概率选择非关键点。

注意每次操作的 p 可能不同,但向 u,v 逼近的概率始终相同(等概率)。

f(i,j) 表示 l 要向 u 逼近 i 步,向 v 逼近 j 步,最后 u 出现在 v 之前的概率。

f(i,j)=p×f(i,j1)+p×f(i1,j)+(12p)×f(i,j)f(i,j)=f(i1,j)+f(i,j1)2submission

D#

[l,r] 内有 cntl 个元素小于 aicntm 个元素等于 aicntr 个元素大于 ai

设中位数为 amid

  • ai>amid,距离等于 al+amrl+22=am+alar12
  • ai<amid,距离等于 rl+32(al+1)=am+aral2

ai>amid 时一定有 am+alar12>am+aral2ai<amid 时同理,等于时两者取 max:

dist=max(am+alar12,am+aral2)

对这两部分分别计算。

对于第一部分,设新数组 b 满足:bj=1 当且仅当 ajai,否则 bj=1

忽略整除 2 的部分,所求即 (j=lrbj)1

不妨以 i 为中心分两部分考虑:(j=libj)+(j=irbj)2,前一部分即前缀 i 的最大后缀,后一部分为后缀 i 的最大前缀。

线段树维护某个区间的最大前后缀。

按照 ai 顺序更新答案,初始 bj 全为 1,每碰到一个新的 ai 就将对应位置修改成 1,时间复杂度 O(nlogn)

submission

posted @   Lu_xZ  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示