被原神策划折磨的最惨的一集
本题考察模意义下的高斯消元
前置芝士:高斯消元、乘法逆元、快速幂
思路分析
根据方块之间给出的传动关系以及序列初始状态,求得一组解,使得按照此方案操作后的方块序列的状态与题目要求的一致。
定义传动关系 n → a 1 , a 2 n\rightarrow a_1,a_2 n→a1,a2 为:“击打 n n n 号方块, n , a 1 , a 2 n,a_1,a_2 n,a1,a2 均同时从当前状态迁移到下一个状态”。
因此我将样例输入 #1 转化为如下的示意图:
(红线为每个方块的末状态,初始朝向均为 0 0 0 )
显然我们需要列出方程求解每个方块的击打次数。
从左到右,设每个方块需要击打的次数分别为 x , y , z x,y,z x,y,z 。根据传动关系—— 1 1 1 号方块仅能被自己、以及 2 2 2 号方块带动; 2 2 2 号方块仅能被自己、以及 3 3 3 号方块带动; 3 3 3 号方块仅能被自己、和 1 , 2 1,2 1,2 号方块带动。又因为状态每次只会更新 1 1 1 个单位,再算上每个方块的初始和终点朝向,就可以列出以下方程组:
{ x + y = 0 y + z = 2 x + y + z = 1 \begin{cases} x+y=0 \\y+z=2 \\x+y+z=1 \end{cases} ⎩ ⎨ ⎧x+y=