2021.8.17 校内模拟赛题解

A

假的石子合并。

圆形石子合并,一次合并代价是两堆石子个数的积,求最小的代价和。

容易发现不管怎么并每一堆石子都要和其它的乘一次,所以答案就是 \(\sum_{i=1}^{n-1} \sum_{j=i+1}^ni\times j\),可以边加边乘优化到线性。

开始以为要什么神奇的 GarsiaWachs,就先跳过了,后来看周围的人都过了才恍然明白过来。

B

人类智慧题!赛场上我鏖战三个三小时,未果。

给定一个字符矩阵,同种字符的四联通极大联通块是一个房间,每次询问一个子矩阵,求有部分(也可以全部)在子矩阵中的房间数量。

开始看错了题目,原来部分在里面也都算一个,还以为断开了就算多个呢,空以为自己会做了,结果在那条路上拐来拐去,最后连正解的边都没有搭到。

首先先在每个房间中随便选一个点,然后对于每个询问,先统计子矩形里的点个数,由于点没选在里面且有部分在里面的点肯定穿过了边界,所以在边界上转一圈把这些没算上的补上就好了。

就是这样……但就是想不到,而且这题是全场过的人最少的。

C

神仙 dp!

求 每个非叶子节点都有两个儿子 且 不存在 一条从根出发 存在 \(k\) 个连接了左儿子并且左儿子也有左儿子的边 的路径 的有 \(n\) 个儿子的树的数量。

根本想不到到 dfs 序上去 dp 也根本想不到那个状态。

\(f_{i, j}\) 是 dfs 序第 \(i\) 位路径上有 \(j\) 条左偏的边的情况数,因为 dfs 序变化到下一个这个啥啥边的个数只有可能增加 \(1\) 或减少 \(1\),所以 \(f_{i, j} = f_{i-1, j-1} + f_{i-1, j+1}\)

这谁想得到啊!不过赛场上有神仙用生成函数+多项式求逆场切的。

D

  • 长度为 \(1\) 的字符串只有相同才是相似的。
  • 长度为 \(n\) 的字符串当且仅当前 \(\frac{n}{2}\) 和 前 \(\frac{n}{2}\) 相似且后一半和后一半相似 或 前一半和后一半相似且后一半和前一半相似 算作相似。

给定俩长 \(2^n\) 的字符串,支持单点修改,询问是否相似。

这玩意儿其实就是树的同构那种感觉,只要在哈希的时候像树同构一样最小表示(合并时把小的放前面)就行了,因为要修改,所以用线段树维护哈希值即可。

本来应该是我最有可能做出的题,可是时间没有了 qwq

posted @ 2021-08-17 19:13  Acfboy  阅读(58)  评论(0编辑  收藏  举报