P10034 「Cfz Round 3」Circle
题目描述
给定一个长度为 $n$ 的 $\tt{01}$ 串 $S$ 和一个非负整数 $l$。
我们定义,对于一个 $1\sim n$ 的排列 $t$ 和非负整数 $k$:
$$f_{t,k}(i)=\begin{cases}i & k=0\\f_{t,k-1}(t_i) & k \neq 0\end{cases}$$
你需要构造一个 $1\sim n$ 的排列 $p$,满足:
- 对于任意一个不大于 $n$ 的正整数 $i$,都满足 $p_i \neq i$;
- 若 $S_i$ 为 $\tt1$,则 $f_{p,l}(i)=i$(若 $S_i$ 为 $\tt0$ 则没有限制);
或报告无解。
其中,$1\sim n$ 的排列指满足所有不大于 $n$ 的正整数恰好出现一次的序列。
输入格式
无
输出格式
无
说明/提示
#### 「样例解释 #1」
对于第 $1$ 组数据,$f_{p,3}(1)=f_{p,2}(4)=f_{p,1}(5)=f_{p,0}(1)=1$,其余数同理,所以 $p$ 为 $\{4,3,2,5,1\}$ 时满足条件。
对于第 $2$ 组数据,可以证明不存在满足条件的排列 $p$。
对于第 $3$ 组数据,$\{2,1,4,5,3\}$ 等也为满足条件的排列 $p$。
#### 「数据范围」
设 $\sum n$ 表示单个测试点中 $n$ 的和。
对于所有数据,$1 \le T \le 100$,$2 \le n \le 5\times 10^5$,$0 \le l \le 10^{18}$,$\sum n \le 5\times 10^5$,保证 $S$ 中只包含 $\tt{0}$ 和 $\tt{1}$。
**只有你通过本题的所有测试点,你才能获得本题的分数。**