2022.10.10 ZRnoip20连day1

1.时间安排

8:30~8:50 读题。

T1贪心,T2DP,T3数据结构,T4构造,标准场。

T1有显然 \(n^2\) DP做法,不知道为什么不给部分分。

T2有50分可以 \(颜色数*n^2\) DP,还有20分的链可以用数据结构做,求的东西类似绝对众数,但是想不到怎么放树上做。

T3很有根号分治的味道,写的好可能有90分,但是常数很大,不好拿。

T4是关于lcs的构造,见的比较少,而且没小数据范围的分,感觉不是很可做。

8:50~9:20

\(n^2\) DP打出来,大概就是一个物品选了A不能选B,最后一共在 \(n\) 个里面选 \(n/2\) 个A,求最大价值的模型,样例没问题。

然后分析一波,发现等价于贪心选 \(r1-l2>r2-l1\) 变换后就是 \(r1+l1>r2+l2\),求下和排序选前 \(n/2\) 就行了。

9:20~9:50

打了T2的50分树上的卡上界背包,一时不知道链用什么数据结构维护,先开T3。

9:50~11:40

先写了T3的20分 \(n^2\) 暴力,然后思考根分的细节。

小于根号的,直接开根号棵线段树维护,按下标对 \(k\) 取余的值分类,修改的时候只涉及到同一棵树上的下标,复杂度 \(n\sqrt nlogn\)

大于根号的,共用一棵线段树,每次修改时暴力向后跳根号步,复杂度也是 \(n\sqrt nlogn\)

无奈常数太大,只能跑动 \(k=1\)\(k=n\) 的特殊数据,只有40……。

然后想了一下数据随机,感觉有决策单调性,打表出来并没有。

11:40~12:00

发现T2的链只需要树状数组维护前缀的DP值和就好了,70分。

12:00~13:00

手推了一下T4的样例,没得到什么有价值的规律。

暴力打表,但是因为符合条件的字符串很多,也看不出规律。

摆烂+对拍T1。

result:

T1:100 T2:70 T3:40 T4:/

2.简要题解

T1:

见赛时思路。

T2:

树上卡上界背包复杂度证明

普通的卡上界背包是通过子树大小卡的,复杂度证明可以理解为任意树上两点只会进行一次在lca处的转移。

本题在此基础上进一步卡上界,因为外层枚举关键点的颜色不可避免,所以用子树内关键点数量卡上界,可证明仍然是均摊 \(n^2\) 的,并且因为这题只需要求关键点数量大于连通块大小的方案数,可以进一步卡上界(即连通块大小超过关键点数量就取min),远远达不到上界 \(n^2\)

败在了时间复杂度分析上。

T3:

结论:\(\lfloor\frac{i-j}{k}\rfloor(i\geq j)=\lfloor\frac{i}{k}\rfloor-\lfloor\frac{j}{k}\rfloor-[i\mod k<j\mod k]\)

有这个结论后这题就是树套树模板了。虽然复杂度是 \(nlog^2n\),但是2e6居然只跑了1.3s。

正解是 \(nlogn\) 的分析性质去掉外层的树状数组,等搞懂补上。

T4:

神奇构造题。

当k=1时,可以让s="11", t="1"。之后会讲原因。

因为k非常大,所以考虑倍增构造。

倍增需要考虑*2,+1两种情况,分别讨论。

另x表示s的长度,y表示t的长度,(a,b)表示一个lcs在s,t中匹配的最后一个位置。

假设现在的s和t在(x-1,y)有1个匹配,在(x,y)有k-1个匹配(对应k=1的构造)。

对于*2操作:

若t最后一位是'1'(但实际上根据构造t最后一位和s最后两位始终相同),则s+="101000", t+="011000"

这时看(x-1,y)为:

s: 1  1101000
t: 1  011000

补上的串在新的(x-1,y)产生贡献为1,(x,y)处产生贡献为1。

看(x,y)为:

s: 11 101000
t:  1 011000

(x,y)处产生贡献为2k-2。

新串仍满足构造,并且方案数*2。

对于+1操作:

若t的最后一位为'1',则s+="000",t+="0100"。

类似上文仍可证明新串满足构造并且方案数+1。

于是就可以枚举二进制位倍增,串长是10logk级别的。

3.总结

1 .时间安排还是不合理,T1这种一眼题花的时间太长,有点过于谨慎,导致T4没有足够时间去思考构造(虽然T4的构造确实不是人类想的)。

2 .关于lis的构造常见,但是这是第一次遇到关于lcs的构造。倍增和归纳构造很妙,这种方法在构造题很常用。

3 .学到了新的树上卡上界背包技巧。上午有一瞬间觉得可以虚树DP,但是很麻烦,其思想是类似的,都是把\(n^2\)均摊出来。

4 .T3学到一个新的关于下去整的结论,上午就是卡在这个地方做不下去。

posted @ 2022-10-10 14:49  Displace  阅读(34)  评论(0)    收藏  举报