CSPS模拟 63

  每天都考试都快傻了O_o

 

  $T1 Median$

    一看就不能从通项上下手..

    那么就是..给你一个序列..区间中位数..

    对顶堆!

    爆调2h,心态炸裂。

    

    据说根据鬼畜的函数定义和$mod<=len$的疯狂暗示,

    数列可以看成一个均匀分布的随机数列,

    而且在值域上还比较稠密,答案变化看作常数级别

    于是指针爆扫

    ???

    好吧下次留意$mod$与$n$同级的情况

 

  $T2 Game$

    考虑游戏的进行过程

    每次只加进来一个数,如果它很大那么直接拿走了,待选集合不变

    否则加进待选集合里,拿个最大的走人

 

    考试的时候纠结于把询问排序以后,初始元素的增多会造成什么影响

    主要还是对$nk$复杂度没有信心吧,不相信每个询问扫一遍就可以

    和T1一样,总是缺乏考虑维护什么东西的意识

 

    另外为什么不说清楚加不加绝对值的事啊

 

  $T3 Park$

    考场正解没调出来,挺遗憾的。

    不过考后都调了半天,细节比较多,也幸好我交了个暴力

    

    发现在一条路径$a->b->c$上,在$b$点放面包造成的差值总等于$v_c + v_{从b伸出去的其他儿子}$

    即$(\sum v_{与b相邻的点})-v_a$

    那么$\sum v_{与i相邻的点}$很好预处理,$n^2$暴力就是从每个点开始$dfs$,堆维护路径上的前$m$大贡献

 

    考虑$nm$做法,随便指定根节点,每条路径都可以在$lca$处并起来

    设$f[i][0/1][v]$表示在点$i$,他从父亲节点拿下来$v$个面包后最大贡献,或给父亲递上去$v$个面包之前的最大贡献

    每个点扫儿子,分两种情况(这个点放不放面包)继承状态

    统计路径时直接正反扫两边儿子用前缀最大值与当前值结合更新答案就行了

    貌似路径正好在一条父链上的情况需要稍微判断一下。

上一篇:西瓜视频地址解析


下一篇:C. Primes and Multiplication(数学)(防止爆精度)