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) \times (k - 1) \choose n - 2}\)
所以可以直接枚举网格中的两个点计算答案
复杂度 \(O(TW^2H^2)\)
对相同的 \(a, b\) 方案数相同 考虑枚举 \(a, b\) 算出答案后再乘上 \((W - a + 1) \times (H - b + 1)\)
复杂度 \(O(TWH)\)
T3 树数树
一个节点 \(u\) 可以将子树中两个序列拼成一个序列 处理完 \(u\) 的父亲时 \(u\) 已经不用管了 可以用堆维护出 \(u\) 和 \(u\) 的子树中的点能组成的序列 转移将所有子树的堆合并 取出最大的两个合并成一个 合并直接暴力启发式
复杂度 \(O(n\log^2n)\)
T4 序列
放弃治疗