摘要: 可以发现直接将每种颜色的第 $i$ 个球分给第 $i$ 个人就可以取到最优解。证明在下面。在这个方案中将每个人的第 $i$ 个球标上 $i$,能取到最优解的方案中,标 $1$ 的必须仍然是某人的第一个球,标 $3$ 的必须仍是某人的第三个球。$\mathcal O(n)$ 正反扫两遍分别计算标 $2 阅读全文
posted @ 2022-11-06 20:55 Kobe303 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 设 $f_{i, j, k}$ 表示从 $i$ 往前,第一个与 $a_i$ 颜色不同的位置是 $j$,第一个颜色与 $a_i, a_j$ 都不相同的位置是 $k$ 的方案数,其中某个值为 $0$ 表示这个位置不存在。当然 $i\gt j\gt k$(特别地,当 $j=0$ 时 $k$ 可以为 $0$ 阅读全文
posted @ 2022-11-06 16:36 Kobe303 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 寄,这都没看出来( 考虑把涂绿色看成同时涂上红色和蓝色,显然这是等效的。 这样红色和蓝色就独立了,枚举红色的个数即可。 时间复杂度 $\mathcal O(n)$。 Code: #include <bits/stdc++.h> using namespace std; typedef long lo 阅读全文
posted @ 2022-11-06 10:58 Kobe303 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 设 $f_{i,j}$ 表示前 $i$ 个位置使用 $j$ 个 $1$ 的方案数。 转移很简单:$f_{i,j}=f_{i-1,j}+f_{i-1,j-1}$ 但是有些状态是非法的,所以对于每个 $i$ 求出其前缀可以操作的最右的位置 $R_i$,以及 $pre_i$ 表示前缀 $1$ 的数量。 于 阅读全文
posted @ 2022-11-06 10:20 Kobe303 阅读(20) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-11-06 08:51 Kobe303 阅读(0) 评论(0) 推荐(0) 编辑