Loading

ARC199 做题记

A (Flip Row or Col 2)

题意

给定一个 \(N\times N\)\(01\) 矩阵 \(A\) 和两个长度为 \(N\) 的序列 \(R,C\)

要求构造 \(01\) 序列 \(X,Y\)。含义如下:

  • flip\(i\) 行当且仅当 \(X_i=1\)

  • flip\(i\) 列当且仅当 \(Y_i=1\)

并且使得完成上述操作后:第 \(i\) 行/列的所有数字之和为 \(R_i/C_i\)

判断是否存在构造,若存在给出方案。

\(1\le N\le 10^3,0\leq R_i,C_j\lt \color{red}{\dfrac{N}{4}}\)

题解

神秘小限制!

发现异或是可以随意叠加的,或者说可以重复操作。

首先钦定第一行操作成全 \(0\)

然后接下来操作 只会操作 \(x=R_1<\dfrac{N}{4}\) 次。

然后观察 \(2\sim N\) 行,发现如果此时其 \(1\) 的个数 \(>\dfrac{N}{2}\) 则一定要操作,否则一定不能操作。

不然 \(1\) 的数量就不满足 \(<\dfrac{N}{4}\) 的限制啦!

于是此时再对每一列再根据列和决定是否操作,最后再判断整体是否合法即可。

复杂度 \(\mathcal{O}(N^2)\),代码很好写。

\(\bf{record}\)

B (Adjacent Replace)

题意

\(T\le 50\) 组多测。

给定一个长度为 \(N\) 的非负整数序列 \(A\) 和一个非负整数 \(K\)

请判断是否可以通过不超过 \(10^4\) 次以下操作使得 \(A_1=K\)

  • 选择一个整数 \(i\in[1,N-1]\),令 \(x=A_i\text{ xor } A_{i+1}\),然后将 \(A_i\)\(A_{i+1}\) 都替换为 \(x\)

给出任意一组合法构造或判断无解。

\(3\le N\le 60,0\le A_i,K\lt 2^{60}\)

题解

考虑到只要进行了一次操作,数列中必然有两个相邻的数相等。

而相等的两个数能带来诸多操作便利!于是枚举第一步。现在有两个相等的数 \(a,a\)

发现 \((a, a, b) \to (a, a \oplus b, a \oplus b) \to (b, b, a \oplus b) \to (b, a, a)\)

又发现 \((a, a, b) \to (a, a \oplus b, a \oplus b) \to (a, 0, 0) \to (a, a, 0) \to (a, a, a) \to (0, 0, a) \to (0, a, a)\)

于是 剩下的数选或不选均可,跑遍线性基判断有无解。

构造就左右左推一遍即可。复杂度 \(\mathcal{O}(Tn^2\log V)\)

\(\bf{record}\)

C (Circular Tree Embedding)

题意

给定一棵 \(n\) 个点的树 \(T\),和一个长度为 \(n\) 的排列 \(p\)

令复合记号 \(T'=p\circ T\) 表示 \(\forall(u,v)\in T\)\(T'\) 上连边 \((p_u,p_v)\)。相当于把树上节点编号进行了一个映射。

称一棵树是好的,当且仅当把 \(1\sim n\) 围成一个环,\(\forall(u,v)\in T\) 则环上 \(u,v\) 之间连线,满足连线两两不交。

给定 \(m\)\(1\sim n\) 的排列 \(P_1\sim P_m\)

求有多少个 \(n\) 个顶点的树 \(T\),使得 \(\forall i\in [1,m],P_i\circ T\) 是好的。对 \(998244353\) 取模。

\(2\leq n,m\leq 500\),保证所有 \(P_i\) 是排列。

题解

  • 考虑一个套路:就是人为钦定一个好看的初始状态,获取更多限制。

考虑 \(P_{i,*}\) 集体 \(+x\bmod n\) 和全体 \(P\) 复合上一个排列都是不会改变问题答案的。

于是不妨先把每个 \(P_i\) 加到 \(P_{i,1}=1\)

然后全体复合上 \(P_1\) 的逆排列,此时 \(P_1=[1,2,\cdots,n]\)

钦定树根为 \(1\)。发现此时若树 \(T\) 满足条件,则必须满足树 \(T\) 的每颗子树中点编号都构成一个 \([l,r]\) 区间。

  • 同时,树 \(P_{i\ge 2}\circ T\) 的每颗子树也构成区间。

于是树 \(T\) 连边的可能性就被我们刻画清楚了。

\([l,r]\) 能连边,当且仅当 \(P_{i\ge 2}\circ [l,r]\) 依然是一个区间,但不一定是 \([l,r]\) 就是了。

然后你有若干合法区间,你要连成一个以 \(1\) 为根的合法树。


这东西显然是一个区间 dp 的形式,先设上 \(f_{l,r}\) 表示区间 \([l,r]\) 连成的方案数。

然后比如你考虑剥掉 \(1\),则形成了若干子树,并且子树也得满足条件。

于是我们把散子树再记一个状态 \(g_{l,r}\),表示 区间 \([l,r]\) 连成的可能是若干散子树的方案数。

发现最后剥 \(1\),答案即是 \(g_{2,n}\)。不好用 \(f\) 算是因为 \(f\) 没有钦定根。

初值 \(g_{i,i-1}=1\) 保证边界情况,转移 \(f\) 就枚举树根的位置,\(g\) 就拆掉最左边子树转移。

  • \(f_{l,r}=\sum\limits_{rt=l}^r g_{l,rt-1}g_{rt+1,r},\text{check}(l,r)=1\),也就是说 \(f\) 只能在好区间处转移。

  • \(g_{l,r}=\sum\limits_{k=l}^{r} f_{i,k}g_{k+1,r}\)

复杂度 \(\mathcal{O}(n^3)\)

\(\bf{record}\)

D (Limestone)

题意

给你一个正整数 \(n,m\)。给定初始全 \(0\)\(n\times m\) 矩阵 \(A\)

你可以对这个矩阵进行以下两种类型的运算,运算的顺序和次数不限:

  • 选择整数 \(r,c\ (1\leq r\leq n,1\leq c\leq m)\),将 \(A_{r,1},A_{r,2},\ldots,A_{r,c}\) 全部赋值为 \(1\)
  • 选择整数 \(r,c\ (1\leq r\leq n,1\leq c\leq m)\),将 \(A_{1,c},A_{2,c},\ldots,A_{r,c}\) 全部赋值为 \(1\)

请你求出通过上述操作能够得到的所有矩阵 \(A\),对于每个矩阵,计算 \(\displaystyle\sum_{i=1}^n\sum_{j=1}^m A_{i,j}\),将所有这些和相加,最后对 \(998244353\) 取模,输出结果。

\(1\le nm\leq 2\times 10^5\)

题解

这东西你先考虑数能得到的矩阵数,再数 \(1\) 的个数和。记录 \(f_{n,m}\) 表示前者,\(g_{n,m}\) 表示后者。

初值:\(f_{0,*}=f_{*,0}=1,g_{0,*}=g_{*,0}=0\)

然后比如 \(f\) 的转移就考虑两种情况:

  • 最后一行全占满。

  • 最后一行选了前缀 \(x\) 个,第 \(x+1\) 个一定不选,后面有 \(y\) 个是一整列选的。

于是容易写出 \(f\) 的转移式,\(g\) 也是完全一样,乘个系数罢了。

\(\begin{aligned} f_{i,j}&=f_{i-1,j}+\sum\limits_{0\le x+y<j} \dbinom{j-1-x}{y}f_{i-1,j-y}\\ &=f_{i-1,j}+\sum\limits_{y=0}^{j-1} f_{i-1,j-y}\sum\limits_{X=y}^{j-1}\dbinom{X}{y}\\ &=f_{i-1,j}+\sum\limits_{y=0}^{j-1} f_{i-1,j-y}\dbinom{j}{y+1} \end{aligned}\)

\(\begin{aligned} g_{i,j}&=g_{i-1,j}+jf_{i-1,j}+\sum\limits_{0\le x+y<j} \dbinom{j-1-x}{y}(g_{i-1,j-y}+(x+iy)f_{i-1,j-y})\\ &=g_{i-1,j}+jf_{i-1,j}+\sum\limits_{y=0}^{j-1} \dbinom{j}{y+1}(g_{i-1,j-y}+iyf_{i-1,j-y})+\sum\limits_{y=0}^{j-1} f_{i-1,j-y}\sum\limits_{x=0}^{j-1-y}\dbinom{j-1-x}{y}x\\ &=g_{i-1,j}+jf_{i-1,j}+\sum\limits_{y=0}^{j-1} \dbinom{j}{y+1}(g_{i-1,j-y}+iyf_{i-1,j-y})+\sum\limits_{y=0}^{j-1} f_{i-1,j-y}\dbinom{j}{y+2} \end{aligned}\)

最后一个等号是因为如下上指标范德蒙德卷积

\[\sum\limits_{x=0}^{j-1-y}\dbinom{j-1-x}{y}x=\sum\limits_{x=0}^{j-1-y}\dbinom{j-1-x}{y}\dbinom{x}{1}=\dbinom{j}{y+2} \]

复杂度 \(\mathcal{O}(nm\min (n,m))=\mathcal{O}((nm)^{1.5})\),足以通过。

感觉这类题在 ARC 已经套路化了?ARC193 和这个就长得有点像。

\(\bf{record}\)

posted @ 2025-09-10 20:03  HaHeHyt  阅读(26)  评论(0)    收藏  举报