个人思路:
首先,经过 \(1\) 轮就没有 \(3\) 了。
先考虑能否递推前 \(i\) 个数的答案,发现不行。
再考虑能否推出 \(i\) 个数的答案的计算公式,也发现不行。
然后就不会了。
正解:
首先,经过 \(1\) 轮就没有 \(3\) 了,只剩 \(0,1,2\),答案必然为三者之一。
我们发现,除非某行出现了全是 \(1\) 的情况,否则该行一定有 \(1\) 与 \(2\) 或 \(0\) 相邻,\(1\) 会留到下一行。这样 \(1\) 就会留到最后。如果出现了全是 \(1\) 的情况,下一步序列里全是 \(0\)。
如果第 \(2\) 行有 \(1\),答案要么是 \(0\) 要么是 \(1\),这个时候只需要判断答案奇偶性。\(|a-b|\) 和 \(a+b\) 在模 \(2\) 意义下是相等的。把操作的 \(|a-b|\) 视为 \(a+b\),我们可以计算第 \(2\) 行的第 \(i\) 个数在答案中计算了多少次。这个东西可以递推,但是复杂度会爆炸。我们发现这个数的递推式等价于组合数的递推式,因此次数为 \(C_{n-1}^{i-1}\)
答案即为 \(\sum\limits_{i=1}^{n-1} a_i \times C_{n-1}^{i-1} \mod 2\)。
如果第 \(2\) 行没有 \(1\),我们直接把所有数除以 2,这样也转为判断奇偶性的问题,答案乘上 \(2\) 就行了。
标签:Triangle,AGC043B,个数,奇偶性,123,答案,递推 From: https://www.cnblogs.com/Mysterious-Cat/p/17111221.html