不是很困难的观察题。
题意:很简单了,不再赘述。
做法:
首先先直接钦定遍历序列第一个为 \(R\),如果不是就把这个环反色即可,假设我们遍历序列分成了 \(m\) 个连续段,分别为 \(c_1,c_2,\cdots c_m\)。
如果一个串全都是 \(R\),那么只要环上没有相邻的 \(B\) 即可,随便 dp 就可以做。
那么我们开始手玩找性质,注意是对于任意的位置都要满足遍历序列而不是存在,我看错题想了半天。
首先我们发现,我们肯定不能有连续的 \(B\),要不然我们从 \(B\) 中间开始直接爆炸了。
其次我们考虑每一个 \(R\) 段,我们可以先把 \(n=3,4\) 的情况画下来,\(n\) 是开头这个段的长度:

我们考虑 \(n=4\),发现一个很严重的问题,当我们从任意一个点开始的时候,如果我们下面有一个 \(B\),我们想出这个连续段的时候,往左往右需要步数的奇偶性是一样的,这样无论你遍历序列开头的连续 \(R\) 段是偶数长还是奇数长,我都能找到一个位置让你直接爆掉,所以每一个 \(R\) 段都得是奇数。
然后从奇偶性上就没什么好分析的了,我们考虑长度限制,我们记 \(R\) 连续段长度为 \(len\)。
首先对于开始段,当 \(c_1\) 为奇数的时候,我要求从第一个点往右走一定要能走出去,从左边是出不去的,所以要求 \(len\le c_1\);对于 \(c_1\) 为偶数的时候,要求从第二个点往右走一定要能走出去,所以要求 \(len\le c_1+1\)。
对于 \(B\) 连续段,我们直接左右横跳就可以了。
然后考虑后面的 \(R\) 连续段 \(c_x\) 有什么要求,如果是偶数长我们直接反复横跳就行了,因为我们刚从一个 \(B\) 过来。如果是奇数长度,你可以先反复横跳再往前冲过去,但是再怎么样必须要 \(len\le c_x\),要不然冲不过去了。
所以总的限制只有两个,就是要求 \(len\le \min(c_1+c1\bmod 2,\min\limits_{i=2,2\mid c_i}^m c_i)\),且 \(len\) 为奇数。
那么这个东西一看就很 poly,我们令 \(t\) 为后面一长坨的那个限制,那么我们的答案就是,考虑我们现在有 \(k\) 个段,那么我们的贡献就还会乘上一个 \(\frac{n}k\),因为你考虑一种方式他旋转后会有 \(n\) 种,但是你有 \(k\) 种环长划分方式可以分出来,所以是 \(\frac n k\),可以手玩一下感受一下。
那么总的柿子就是 \((x\sum\limits_{i=1,2\nmid i}^t x^i)^k[x^n]\)。
解释一下,里面的和式是 \(R\) 连续段的方案,而外面的 \(x\) 是我们直接每个连续段带一个 \(B\) 这么考虑。
我们考虑令 \(d=\frac{t-1}{2}\),那么柿子就可以化为 \((x\frac{1-x^{d+1}}{1-x})^k[x^{\frac{n}{2}}]\),最后乘上我们的贡献得到总和为;
后面那个东西是 \(\ln(1-x)\) 的泰勒展开,我们还原回去:
然后我们考虑对后面这个柿子求导,原式就等于下面这个式子:
直接对着这个式子求就可以了。
