2022.10.21 模拟赛小结

sssmzy AK 了,zpair 差一点 AK 了,我寄了。

一套难得的难度略低于 NOIP 的阳间模拟赛

虽然还是寄了

更好的阅读体验戳此进入

赛时思路

T1

f(x)=x4+12T 组询问,给定 n,求 i=1n=1f(i)。强制在线。

原题 LG-P8574 「DTOI-2」星之影

难得切掉的一道水题

第一眼值域分块,然后发现不是,于是考虑对于 f(x) 显然取值是一段一段的,且段长递增,于是我们维护一下每一段的初始值,然后做个前缀和,考虑好加 11 的边界,每次询问 lower_bound O(logn) 查询一下即可。题解里也有 O(1) 查询的方法,大概就是嗯推一下柿子。

Code

T2

给定 n 个点以 1 为根的树,初始所有节点权值为 0q 个操作或询问,操作为给定 v,x,k,对 v 及其子树,记节点与 v 的距离为 dis,则对每个节点的权值加上 xdis×k,询问为给定 v 输出 v 的权值。

原题 CF396C On Changing Tree

又把 10.19 口糊的那个通过 bfs 序转称序列上然后套线段树的塞上去了,大概可以认为是暴力 + 大剪枝,树越扁剪枝越大,树是链的话就退化成暴力。

本来应该能拿到一些分的,然后线段树的 query 忘了取模了,直接全寄爆零。

Code

T3

给定序列 an,保证 1ai8,求一个最长子序列满足:1. [1,8] 任意两个整数出现次数之差不大于 1。2. 每种数字必须连续出现。

原题 CF743E Vladik and cards

没想出来,暴力 10pts 跑路。

Code

T4

原题 CF1051F The Shortest Statement

寄了,写的暴力也挂了。

Code

正解

T2

考虑对于每次修改 v,x,kv 子树(包括 v)下的 u,修改量为 xdis(u,v)×k,因为是在树上,所以可以转化成 x(depvdepu)×k,展开一下:x+depu×kdepv×k,然后发现式子里对于点 vdepv 是定值,所以开个线段树(或树状数组)维护一下 x+depu×kk 即可。然后这样的话每次修改就等于是对一整个子树的修改,考虑如何转到序列上,显然按照 dfs 序即可。

Code

T3 T4

咕咕咕。

UPD

update-2022_10_21 初稿