05 2021 档案
摘要:Description 思路 方法1 在树1上dfs,可以确保访问的点是树链,满足性质1;假设把访问到的点都在树2上标记,并将标记点之间的路径缩短到只有一条边,这样就构成一颗新树。而满足性质2的最大个数就是新树的叶子结点个数。只要我们能维护好叶子结点的个数,其中最大值就是答案。 使用树剖,就可以动态
阅读全文
摘要:Description 思路 从样例的图片可以很好的理清思路。 设$dp[i]$为方案数,那么有两种贡献: 用等长的线段覆盖整个区间,共有$g(i)$种情况,其中$g(i)$代表$i$的约数个数。 中间留空,一共有$dp[i-1]+dp[i-2]+...+dp[1]$种情况。 所以转移式是 \(dp
阅读全文
摘要:题目 source 思路 在队友帮助下,理清了思路。 设每个点为$x_i$,它们的取值为0或1。设前缀和为$S_i$。 题目具有单调性,涂色越多越能符合条件。因此可以考虑二分。假设二分值为mid,那么约束条件如下: \(S_r-S_{l-1} \ge K_i\) \(mid - (S_r-S_{l-
阅读全文
摘要:题目 DreamGrid has an interesting permutation of \(1,2,...,n\) denoted by \(a_1,a_2,...a_n\). For each \(1 \le i \le n\), \(f_i = \max\{a_1,a_2...,a_i\}
阅读全文
摘要:题意 source 思路 求每一位开始的字符串中字典序最小的字符串,容易想到用后缀数组。预处理出每一位开始跳2的幂次后位置,然后稍微修改一下后缀数组模板倍增部分即可。 使用普通排序的版本会T,得用计数排序。 #include <iostream> #include <algorithm> // #d
阅读全文
摘要:source H - Guessing the Dice Roll 题意 n个人分别猜一个由数字1~6组成长度为L的字符串t。主持人也生成一个由数字1~6组成的字符串s,每次等概率从1~6中取一个数字插入到字符串末尾。当某人猜的字符串成为了s的后缀,就胜利,游戏结束。问每个人获胜的概率。 思路 显然
阅读全文