Loading

省选集训day5

省选培训 day5

考试题

T1

\(n\) 个宝石,每一个宝石有一个颜色和一个价值,有两个操作:

  • 1 x c v 表示把 \(x\) 宝石的颜色改成 \(c\),价值改为 \(v\)
  • 2 s k 表示从 \(s\) 位置开始取宝⽯,每次可以取或跳过这个宝⽯,然后继续考虑下⼀个或者结束。要求跳过的宝⽯不能超过 \(k\) 个,并且取的宝⽯颜⾊两两不同,并且价值最⼤。

考虑贪心,一定是向后找,直到有 \(k+1\) 个相同的。有一个 \(n^2\)。所以我们记一下每一个元素的前驱,每一次在线段树上二分就可以。

zyc 大佬是这样做的,我们维护一个点的前驱和后继,可以利用 multiset 和二分来维护和修改,对于 \(k>0\) 的情况,我们直接维护前驱最大值,然后找前驱在前 \(ql\) 中的,循环 \(k\) 次即可。不要忘了 multiset!!!

T2

一道数据结构和数学题。我们在字符串上建立 ac 自动机,然后发现题目转化成了从根节点走到任意一个叶子结点的期望步数,这个可以用主元法和高斯消元解决。也可以用生成函数看这个问题。

T3

我们可以压位,这样操作整个序列时间复杂度下降,同时我们的操作只取决于我们的最后一位,所以我们可以在最后一位上操作,然后把多个操作合并成一个操作,由此可以拿到满分。

杂题选讲

1

img

不是很明白。这里放上ppt。

img

实际上,根据 \(p\)\(q\) 的二次剩余,我们可以得到一些关于 \(q\bmod p\) 的信息。我们可以用类似于 N-smooth 的方法,去随机一下。

2

给一堆石子,规则和合并石子相同。我们钦定一堆石子和其它石子合并,请输出我们分别枚举所有石子,让他首先合并的最小费用。

我们把这个东西抽象成一棵树,那么这就成了一个经典模型,当儿子的平均值小时要向上合并。对于这个问题,我们可以把他看成两条链来处理,对两条链分别维护一个栈,分别插入与删除,插入好插入,对于删除,我们可以把它看做反向插入,即离线来处理。

3

求:

\[\sum\limits_{x=1}^nlcm(x,x+1,...x+k) \]

其中 \(n\le10^{18},k\le30\)

\(L=lcm(1,2,...k+1)\),一定是一个多项式,并且可以写成一个二项式系数的形式。同时,每一个素数对 \(c\) 的贡献是独立的。所以我们可用 meet in the middle+crt 解决。

4 无穷图最大流问题

根据对偶性证明:我们可以这么连边:原图中从 \(u\)\(v\) 连一条容量为 \(c\) 的边,在新图中从 \(u\)\(v\) 连一条容量为 \(c\) ,费用为 \(1\) 的边。跑最小费用最大流即可。

没听懂。

6 Collections In Containers

没听懂

7 Mystery Square

我们确定前面一半和后面一半都可以确定这个数,直接开根或平方即可。一半最多是 \(2^{20}\) 的枚举度,这个题就做完了。

8 Presents

这个题应该就是我们把所有数写出来,然后随机一个,然后我们就可以去掉那些平均值是该位置的数,然后每一次我们都把值域分成一半,于是这个题就做完了。

9

你有n个1到10^18之间的随机数a1,a2,...,an
你把这些数打乱,然后+k%m之后得到了b1,b2,...,bn
n>=1e5, m<=1e10

没听懂。

10

img

我们可以利用 这三条红边和中间的数来推出这两条蓝边到底是否存在。所以其实那个权值是骗人的,只有唯一的方案。

img

由此,我们得出答案。

小结

有一些题当时听懂了,但整理的时候就忘了,有时候庆幸自己已经把音频录了下来,这说明我懂得还不透彻,或者理解能力不强。需要进一步加强训练。

目前先简单把思路写一下,以补前置知识为主。

posted @ 2021-06-03 21:31  hyl天梦  阅读(107)  评论(1编辑  收藏  举报