10.6 牛客

10.6 牛客

唯一感觉能做的一场

感觉能做的原因是有分


得分情况

100 + 0 + 50 + 5 = 155

T2 因不会写暴力而卑微爆零


题解

T1 串串串

发现只有奇偶有关 又都是 (01) 串 直接维护前缀和作差即为答案


代码


T2 方格计数

一个结论: 网格图中对于两个点 设 (a) 为其横坐标的距离 (b) 为其纵坐标的距离 那么这里面可以选择的点的个数有 (g = gcd(a, b) - 1)

原题相当于在这条线上再找 (n - 2) 个球 放到 (g) 个盒子里面 相邻两个球的盒子编号至少为 (k) 这个东西的方案数为 ({g - (n - 1) imes (k - 1) choose n - 2})

所以可以直接枚举网格中的两个点计算答案

复杂度 (O(TW^2H^2))


对相同的 (a, b) 方案数相同 考虑枚举 (a, b) 算出答案后再乘上 ((W - a + 1) imes (H - b + 1))

复杂度 (O(TWH))


代码


T3 树数树

一个节点 (u) 可以将子树中两个序列拼成一个序列 处理完 (u) 的父亲时 (u) 已经不用管了 可以用堆维护出 (u)(u) 的子树中的点能组成的序列 转移将所有子树的堆合并 取出最大的两个合并成一个 合并直接暴力启发式

复杂度 (O(nlog^2n))


代码


T4 序列

放弃治疗

原文地址:https://www.cnblogs.com/blank-space-/p/15399840.html