间隔输出即可,达到的效果是对于第 $i$ 个 $n$ 长度子串对齐第 $i$ 个 $0/1$ 字符。
优先填充重量更小的武器,至于自己和跟从者各取多少可以枚举,然后另一种武器补满。
相当于如果 $s_i$ 为 $1$ , $w_{i-x}$ 和 $w_{i+x}$ 中至少一个为 $1$ , $s_i$ 为 $ 0 $ , $w_{i-x}$ 和 $w_{i+x}$ 均为 $ 0 $ 。贪心填一下就好
给定数组,统计满足 $1 \le i < j < k < l \le n,a_j = a_l,a_i = a_k$ 的四元组 $(i, j, k, l)$ 。
大概就是注释这样。
给定数组 $a_i$ ,每次操作可以把某个都不为零的区间全部减一或者把某个位置清零,问使得整个数组清零的最少操作次数。
两种操作的次序对结果无影响,那可以先做所有的区间减一操作,如果要做肯定要选值最小的 $a_k$ ,把所有值减去 $a_k$ ,递归的去做 $[l,k-1],[k+1,r]$ ,否则我们就只能把 $[l,r]$ 区间每个位置手动分别清零。 $O(n^2)$ 就可以过了,不过用RMQ等等可以做到更好。
$x$ -prime其实非常的少可以先dfs出来放进ac自动机,然后简单dp一下停在自动机某节点不动删除字符要加一,否则转移向nxt[i],作字符串结尾的节点要ban掉。
$n$ 个雇佣兵, $m$ 条限制关系。只有满足总选择人数在 $[l_i,r_i]$ 间,雇佣兵 $i$ 被选择才是合法的。限制关系限制 $a_i,b_i$ 不能被同时选择。问可行的选择方案数。
考虑容斥,设 $a_i$ 为选择某 $i$ 条限制被固定打破时人数满足区间条件的方案数量的和,则答案是 $\sum\limits_{i=0}^m(-1)^ia_i$ 。
观察到 $m$ 比较小,限制关系是可以按位枚举的。当前选取某 $s$ 条限制违反,即每条限制中的 $a,b$ 必选,可以得到此时固定了 $cnt$ 个雇佣兵,而总人数一定在这些固定选取者的区间的并 $[L,R]$ 中。我们可以通过差分再前缀和得到人数为 $i$ 时满足区间条件的人数 $num_i$ 。则这个限制子集对答案的贡献为 $(-1)^s\sum\limits_{i=L}^R{num_i-cnt\choose i-cnt}$ ,而为了降低复杂度可以对每个 $cnt$ 做前缀和预处理(只有 $2m$ 个)。