|
|
感谢ruyi为这篇题解作出的贡献。
题目大意给你$N-K+1$个数,第$i$个数表示原数组$A$中第$i-K+1$到$i$的和。
现在问你有多少个01数组$A$满足上面的条件,保证至少存在一个$A$合法。
思路
我们发现$A$中的数取值只有$0$和$1$,不难想到给你的$N-K+1$个数里,相邻的两个数相差只有$0$,$1$和$-1$两种情况。
我们可以考虑维护一个数组$A$,初始化所有元素为$-1$,表示元素都没有确定。
如果相邻元素的差不是$0$,这两个元素的大小就是确定的,直接在$A$中修改;如果差是$0$,这两个元素就是一定相等的。
所以对于一个我们知道的相等的元素的集合,只要知道里面随便一个元素的值,整个集合都能确定,直接用DSU维护这个关系即可,实现很简单,实现很简单,直接把已知的$A_i$的值放到她的根节点上,再对于每个元素把她根结点的值放到自己上即可。
最后我们需要满足前$K$个元素是读入进来数组的第一个数,这堆连通块整体的方案数是$C(cnt1, s-cnt2)$,其中$cnt1$是我们连通块的数量,$cnt2$是我们确定的$1$的数量。
对.于后面的连通块,他们的取值怎么样都行,直接把答案乘$2$即可。
~~见过的最简单的一道蓝题(~~
题目4190 Binaria
1
评论
2025-11-02 15:31:38
|