上一页 1 ··· 4 5 6 7 8
摘要: 分析 考虑枚举。 注意到第二个条件是必须要有 $25$ 个字符在里面出现过,故考虑枚举唯一没出现过的字符 $k$,然后再枚举 $s_i$。 令 $cnt_{i,j}$ 表示 $s_i$ 中字符 $c$ 出现的奇偶性。如果有字符 $c \ne k \land cnt_{i,c}=0$,则在 $s_j$ 阅读全文
posted @ 2024-03-05 19:04 harmis_yz 阅读(18) 评论(0) 推荐(0)
摘要: 分析 考虑状压。 定义状态函数 \(f_{i,j}\) 表示在得到 \(C\) 出现过的状态为 \(i\) 且排列末尾为 \(j\) 时的最小代价。则有转移方程:\(f_{i,j}=\min\{f_{i',k}+dis_{k,j}\}\),保证 \(i'\) 表示集合属于 \(i\)。\(dis_{ 阅读全文
posted @ 2024-03-05 19:04 harmis_yz 阅读(26) 评论(0) 推荐(0)
摘要: 比 E 简单。 分析 考虑暴力 DP。 定义状态函数 $f_i$ 表示最后一个黑点为 $i$ 时的方案数,有:$f_i =\sum\limits_{j=1}^{i-1}f_j[(i-j)\bmod val_j =0]$。不难发现在使用刷表法的时候,转移代码: for(re int j=1;i+val 阅读全文
posted @ 2024-03-05 19:03 harmis_yz 阅读(59) 评论(0) 推荐(0)
摘要: 分析 一眼分块。 用值域分块来维护。先把所有的值离散化,使得至于不大于 $n+q$。统计一下每个值的数量,每个块包含值的数量,每个块的价值和。修改值的时候先把原来值的数量,块包含的数量,块的价值剪掉被修改值的贡献,然后在新的值上面更新。修改数量直接改数量的变化贡献即可。 找前 $x$ 大的值之和从值 阅读全文
posted @ 2024-03-05 19:01 harmis_yz 阅读(27) 评论(0) 推荐(0)
摘要: 分析 乱搞题。 $1 \le n,m \le 10^5$ 的时候就可以考虑乱搞了。 发现每次操作 $1$ 都会把上一次的操作 $1$ 覆盖掉,那么第 $i$ 个询问时树的颜色情况就是由前 $1$ 个操作 $1$ 决定。也就是说这个询问的内容变成了:在 $x$ 为根的子树中,深度不小于 $x'$ 的节 阅读全文
posted @ 2024-03-05 19:01 harmis_yz 阅读(103) 评论(0) 推荐(0)
摘要: 分析 线段树。 每个节点维护两个值:$s[l\dots r]$ 和 $s[r \dots l]$。判断字串是否是回文直接就是询问的答案维护出来的两个值是否相同。 首先想到用线段树暴力维护。第一个值很显然是两个儿子的第一个值加起来,第二个值是反着加起来。得到很酷的代码: il void up(int 阅读全文
posted @ 2024-03-05 18:57 harmis_yz 阅读(62) 评论(0) 推荐(0)
摘要: 分析 一眼 DP。 定义状态函数 $f_{i,j}$ 表示在第 $i$ 此比赛中,获胜者为 $j$ 时的最大奖学金。把比赛过程看成一棵倒着的满二叉树,就能发现:第 $i$ 场比赛只会是其左儿子为根的子树中叶子节点的某一个与其右儿子为根的子树中叶子节点的某一个进行比赛。然后就可以得到转移方程:$f_{ 阅读全文
posted @ 2024-03-05 18:57 harmis_yz 阅读(28) 评论(0) 推荐(0)
摘要: 分析 考虑 DP。 由于 $n$ 很大,而 $m$ 可以接受,考虑根据公交车定义状态函数。很容易想到一种状态函数:$f_i$ 表示做第 $i$ 辆公交车到 $t_i$ 的方案数。根据题意,就有转移方程:$f_i=\sum f_j [s_i \le t_j \le t_i-1]+k$,$k$ 在 $s 阅读全文
posted @ 2024-03-05 18:54 harmis_yz 阅读(15) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8