1 条题解

  • 0
    @ 2025-8-24 21:54:20

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Snakes
    **

    搬运于2025-08-24 21:54:20,当前版本为作者最后更新于2018-04-10 19:08:39,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    算法一

    我会随机!

    由于我忘了设置多组数据,期望得分00100100

    算法二

    我会模拟!

    复杂度O(t2)O(t^2),期望得分6060

    但是很多人忘记题目给出的是环形……

    算法三

    我会正解!

    实际上是数学题,显然时刻ttkk盏灯的状态为

    $$\left(\sum_{i=0}^t C_t^ia_{(k+i-1) \bmod n+1}\right) \bmod 2 $$

    求和即可。复杂度O(t)O(t),期望得分100100

    给证明?

    实际上,这道题是这个问题的子问题。

    亮灯问题

    nn盏灯环形排列,顺时针依次标号为0..n10..n-1。初始时刻为00,所有灯的亮灭(我们称之为状态)随机。下一时刻每盏灯的亮灭取决于当前时刻这盏灯与顺时针方向下一盏灯的亮灭。若两盏灯状态相同,则下一时刻该灯灭,否则该灯亮。
      试求:当nn满足什么条件时,能保证在初始状态随机的情况下,时刻nn所有灯均为灭?

    答案

    n=2p(pN)n=2^p \quad (p \in \mathbb{N})

    证明

    环形排列下,直接对灯的标号进行加减可能会出现越界的情况,所以我们需要对结果取模,即第ii盏灯顺时针方向下kk盏灯为第(i+k)modn(i+k) \bmod n盏灯。

    定义StiS_t^i表示时刻ttii盏灯的亮灭,00表示灭,11表示亮。

    异或?

    异或运算应用于逻辑运算(也可以看作为二进制下)。\oplus为异或运算符。其运算法则相当于不带进位的二进制加法:

    $$\begin{aligned}0 \oplus 0=0\\ 1 \oplus 0=1\\ 0 \oplus 1=1\\ 1 \oplus 1=0\end{aligned} $$

    即二进制位相同则结果为00,不同为11

    根据异或运算的定义及题意,我们可以得到:

    Sti=St1iSt1(i+1)modnS_t^i=S_{t-1}^i \oplus S_{t-1}^{(i+1)\bmod n}

    又因为异或运算等价于不带进位的加法,而我们只关注StiS_t^i的奇偶,所以有:

    $$S_t^i=\left(S_{t-1}^i+S_{t-1}^{(i+1)\bmod n}\right) \bmod 2 $$

    由于在时刻tt,标号为ii的灯受到上一时刻标号ii(i+1)modn(i+1) \bmod n的灯的影响,而在时刻(t1)(t-1),标号(i+1)modn(i+1) \bmod n灯受到时刻(t2)(t-2)下标号(i+1)modn(i+1) \bmod n(i+2)modn(i+2) \bmod n灯的影响。继续推导可知,时刻ttii灯受到时刻00ii灯到(i+t)modn(i+t) \bmod n灯初始状态的影响,并且可能不止一次

    注意有amodp+bmodp=(a+b)modpa \bmod p+b \bmod p=(a+b) \bmod p的性质,所以方便起见,我们可以将取模运算放在最后操作。以下SS的值域将会扩充到自然数集,但是其意义仍为Smod2S \bmod 2

    受几次影响?

    定义ZtkZ_t^k表示时刻tt下标号为ii的灯受到(i+k)modn(i+k) \bmod n灯初始状态的影响次数,则有:

    Sti=j=0tZtjS0(i+j)modnS_t^i=\sum_{j=0}^t Z_t^j S_0^{(i+j) \bmod n}

    根据SSZZ的定义,我们有:

    $$S_{t+1}^i=\sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) \bmod n}=S_t^i+S_t^{i+1} $$

    展开上式,得:

    $$\sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) \bmod n}=\sum_{k=0}^t Z_t^k S_0^{(i+k) \bmod n}+\sum_{l=0}^t Z_t^l S_0^{(i+l+1) \bmod n} $$

    因为ZZ的定义,所以Zt1Z_t^{-1}Ztt+1Z_t^{t+1}是无意义的,值为00,则上式可改写成下式形式:

    $$\begin{aligned}\sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) \bmod n}&=\sum_{k=0}^{t+1} Z_t^k S_0^{(i+k) \bmod n}+\sum_{l=0}^{t+1} Z_t^{l-1} S_0^{(i+l) \bmod n}\\ &=\sum_{k=0}^{t+1} \left(Z_t^k S_0^{(i+k) \bmod n}+Z_t^{k-1} S_0^{(i+k) \bmod n}\right)\\ &=\sum_{k=0}^{t+1} \left(Z_t^k+Z_t^{k-1}\right) S_0^{(i+k) \bmod n} \end{aligned} $$

    所以有ZZ的推导公式:

    Zt+1k=Ztk1+ZtkZ_{t+1}^k=Z_t^{k-1}+Z_t^k

    根据定义可以得到边界条件:

    Z00=1Z_0^0=1

    不难发现ZZCC的边界条件与推导公式相同,则有:

    Ztk=CtkZ_t^k=C_t^k $$S_t^i=\left(\sum_{j=0}^t C_t^j S_0^{(i+j) \bmod n}\right) \bmod 2 $$

    均灭?

    若时刻nn所有灯均灭,则上一时刻即时刻(n1)(n-1)时,标号ii的灯应受所有灯影响或不受任何一灯影响。但通过Cn1kC_{n-1}^k的奇偶性我们发现,不受任何一灯影响是不可能的。则ii灯应受所有灯影响,即为:

    $$C_{n-1}^k=1 \quad (n \in Result, k \in \mathbb{N}, 0 \leq k \leq n-1) $$

    不妨将Ctkmod2C_t^k \bmod 2(即杨辉三角对22取模的图形)列出来。不难发现规律:第2p12^p-1行符合全为11的条件,也就是说,答案为n=2p(pN)n=2^p (p \in \mathbb{N})(别忘了n=1n=1的情况!)而如果我们将11染为黑色等边三角形,将00染为白色等边三角形(如图),我们将得到Sierpinski三角形(谢尔宾斯基三角形)。Sierpinski三角形是分形图形的一个经典图形,在Matrix67的博客里也有提及。

    Sierpinski三角形?

    接下来,我们需要证明为什么第2p12^p-1行符合全为11的条件。则我们需要证明:

    $$C_{2^p-1}^k \equiv 1 \pmod 2 \quad (k \in \mathbb{N}, 0 \leq k \leq 2^p-1) $$

    展开得:

    (2p1)!k!(2p1k)!1(mod2)\frac{(2^p-1)!}{k!(2^p-1-k)!} \equiv 1 \pmod 2

    定义GiG_i表示ii分解质因数后22的个数。定义Trl=j=lrGjT_r^l=\sum_{j=l}^r G_j,则上式可由下式证得:

    Tk1=T2p12pkT_k^1=T_{2^p-1}^{2^p-k}

    若将ii写为二进制,则GiG_i为二进制下ii末尾00的个数。不难发现有以下两条性质:

    $$G_i=G_{i+2^j} \quad (i, j \in \mathbb{Z^{+}}, 2^j \gt i) $$G2j=j(jZ+)G_{2^j}=j \quad (j \in \mathbb{Z^{+}})

    二进制下(i+2j)(i+2^j)可由二进制下ii的第jj位由0011得到,由于第jj位在限制条件下一定比ii的最高位更高,所以在第jj位添加11对末尾00的个数即GG无影响,第一条式子得证。第二条式子也可以根据GG的定义得到。

    接下来我们需要证明:在1..2p11..2^p-1的范围内,GG2p12^{p-1}为轴对称。

    首先注意到,在p=1p=1的条件下,该结论成立。我们需要将结论扩展到pZ+p \in \mathbb{Z^{+}}

    若在1..2p11..2^p-1范围内,GG2p12^{p-1}为轴对称,则有:

    Gi=G2p1+(2p1i)=G2piG_i=G_{2^{p-1}+(2^{p-1}-i)}=G_{2^p-i}

    又因为Gi=Gi+2pG_i=G_{i+2^p},所以:

    Gi+2p=Gi=G2piG_{i+2^p}=G_i=G_{2^p-i}

    并且有G2p=G2pG_{2^p}=G_{2^p},所以在1..2p+111..2^{p+1}-1范围内,GG2p2^p为轴对称。所以我们可以将p=1p=1下的结论扩展到pZ+p \in \mathbb{Z^{+}}

    根据GG的对称性,我们有下式成立:

    Tk1=T2p12pkT_k^1=T_{2^p-1}^{2^p-k}

    所以下式成立:

    (2p1)!k!(2p1k)!1(mod2)\frac{(2^p-1)!}{k!(2^p-1-k)!} \equiv 1 \pmod 2

    得:

    $$C_{2^p-1}^k \equiv 1 \pmod 2 \quad (k \in \mathbb{N}, 0 \leq k \leq 2^p-1) $$

    得证。

    根据第2p12^p-1行均为11,我们可以推得第2p2^p行只有C2p0C_{2^p}^0C2p2pC_{2^p}^{2^p}11,其余为00,这两个11将分别向下扩展到2p+112^{p+1}-1行,形成与112p12^p-1行相同的Sierpinski三角形。

    所以杨辉三角在对22取模的情况下,将会形成Sierpinski三角形。

    我们的问题也证明完毕,证得答案为n=2p(pN)n=2^p (p \in \mathbb{N})

    所以细心的你看完这篇文章一定会证明啦~

    实际上,我们用到的是受影响次数的计算式,将其代入题目就能得到题解给出的式子啦!

    • 1

    信息

    ID
    2897
    时间
    1000ms
    内存
    125MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者