请问这样证明是否是对的
查看原帖
请问这样证明是否是对的
556975
PNNNN楼主2024/8/29 21:27

对题解区做法的证明:

用 flag(i,j)flag(i,j) 表示当只包含字母 ii 和 jj 时 ss 和 tt 是否相等。显然,当 flag(i,j)flag(i,j) 为 11 时,我们可以理解为字母 ii 和 jj 在 ss 和 tt 中的相对位置相同。

不妨设当前询问的字符集为 C={c1,c2,…cn}C=\{c_1,c_2,\dots c_n\} 。我们定义字符串 s0s_0 和 t0t_0,初始为空串。我们枚举 i=1∼ni=1 \sim n,假设我们当前已经将所有 ss 中为 {c1,c2,…,ci−1}\{c_1,c_2,\dots,c_{i-1}\} 的字母按 ss 中原本的相对顺序插入 s0s_0,t0t_0 同理,且此时 s0=t0s_0=t_0。考虑将字母 cic_i 插入,若 ∀j∈[1,i−1],flag(cj,ci)=1\forall j\in [1,i-1],flag(c_j,c_i)=1,则可以说明,字母 cic_i 与 c1,c2,…,ci−1c_1,c_2,\dots,c_{i-1} 在 ss 和 tt 中的相对位置都相同,那么将字母 cic_i 插入 s0s_0 和 t0t_0 后,s0s_0 和 t0t_0 仍然相同。证毕。

不知道有没有伪证,要是有的话还请斧正。

2024/8/29 21:27
加载中...