来自aakennes的新年祝福(欢乐赛)
来自aakennes的新年祝福(欢乐赛)
A. 字符串会上树
直接模拟。
(因为没关 freopen 吃了 10 发罚时)
B. 挖宝石
直接上 bitset 即可,对于不是 0 的限制,多记一个 $ k $ 即可,最后看 $ k $ 不是看 $ 0 $ 。
C. 电梯系统
考虑每多一层,该层就要向前每层连一条边,而有的边可以和之前的边连在一起,所以每次加边,看看能不能少 $ 1 $ 的贡献,发现每个点都会被后面的点连知道没有边挂在自己这,所以可以直接 $ O(n) $ 算。
D. 打游戏
树上DP ,设 $ f_i $ 表示从 $ i $ 点向下延伸一条链的最大贡献是多少,直接转移。
E. 魔法水晶
考率建一个拓扑图出来,然后每层点必须和上一层的点至少一个有连边,和本层点随意连边,和其他点不可连边,$ O(n) $ DP 即可。
F. 随机数序列
首先判断可不可行只需要找到第一个确定的数,然后往后算一遍看看和给出的符不符合即可。
接下来求 $ seed $ 只需要从第一个确定的数向前反推,比如 x^=(x<<1) 只需要从右到左一位一位异或回去即可。
G. 线段树改造
发现 $ x ⨂ y $ 操作相当于 $ (x+y+1) \mod 4 $ ,可以直接用线段树维护。
H. 赌博

瞪了一个小时才看见这句话。
有一个性质是如果有解的话 $ f \le n $ 。
所以 $ p $ 的数据范围就是假的了,直接 $ O(\sum n) $ 就做完了。
I. 魔法水晶2
观察这 16 种不合法状态只和下面 10 个点(白色的)有关,并且红点所在直线都是满足 $ x+y \equiv 2 \pmod 5 $ 的,所以每一条红斜线两两互不影响,所以把每一条斜线拿出来单独做。

处理一条线 $ x+y = k $ 时 ,同时需要关注 $ x+y = k-1 , x+y = k-2 , x+y = k+1 , x+y = k+2 $ 上的白点,考虑状压,直接转移即可,但是要注意卡常。
J. 对战
原s!
但是没过
K. 交通网络
首先对时间扫描线,然后我们考虑对于询问 $ x \to y $ ,将贡献拆为 $ x \to lca $ 和 $ lca \to y $ ,操作同样这样拆,直接上树剖即可。
L. 疯狂的矩阵
直接 dfs ,在点 $ (x,y) $ 时通过比较 $ (x+1,y) $ 和 $ (x,y+1) $ 的大小决定下次去哪个点,所以我们要快速求 $ a_i $ ,可以直接矩阵快速幂,但是直接算 $ a_i $ 是一个 $ 6 \times 6 $ 的矩阵,会 T ,类似于斐波那契数列的一个公式: $ \sum_{i=0}^{n} F_i ^2 = F_n F_{n+1} $ ,可以得出 $ a_n = x_{n+1} x_{n} - x_0(x_1 - x_0) $ ,这样矩阵就是 $ 2 \times 2 $ 的,时间复杂度算出来很对 。
M. 超级计算机
答案是逆序对个数,直接把一段区间缩成一个点然后归并排序即可。
N. 线段树改造2
题目保证运算符有结合律,所以直接线段树即可,难点在于计算中缀表达式。

浙公网安备 33010602011771号