CF1975I Mind Bloom

Description

This is the way it always was. This is the way it always will be. All will be forgotten again soon... Jellyfish is playing a one-player card game called "Slay the Spire". There are $ n $ cards in total numbered from $ 1 $ to $ n $ . The $ i $ -th card has power $ c_i $ . There is a binary string $ s $ of length $ n $ . If $ s_i = \texttt{0} $ , the $ i $ -th card is initially in the draw pile. If $ s_i = \texttt{1} $ , the $ i $ -th card is initially in Jellyfish's hand. Jellyfish will repeat the following process until either her hand or the draw pile is empty. 1. Let $ x $ be the power of the card with the largest power in her hand. 2. Place a single card with power $ x $ back into the draw pile. 3. Randomly draw $ x $ cards from the draw pile. All subsets of $ x $ cards from the draw pile have an equal chance of being drawn. If there are fewer than $ x $ cards in the draw pile, Jellyfish will draw all cards. At the end of this process, find the probability that Jellyfish can empty the draw pile, modulo $ 1\,000\,000\,007 $ . Formally, let $ M=1\,000\,000\,007 $ . It can be shown that the answer can be expressed as an irreducible fraction $ \frac{p}{q} $ , where $ p $ and $ q $ are integers and $ q \not \equiv 0 \pmod{M} $ . Output the integer equal to $ p \cdot q^{-1} \bmod M $ . In other words, output such an integer $ x $ that $ 0 \le x < M $ and $ x \cdot q \equiv p \pmod{M} $ .

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1\leq t\leq 100 $ ). The description of the test cases follows. The first line of each test case contains a single integer $ n $ ( $ 1 \leq n \leq 120 $ ) — the number of cards. The second line of each test case contains $ n $ integers $ c_1,c_2,\ldots,c_n $ ( $ 0 \leq c_i \leq n $ ) — the powers of the cards. It is guaranteed that $ c_1 \leq c_2 \leq \ldots \leq c_n $ . The third line of each test case contains a binary string $ s $ of length $ n $ . If $ s_i = \texttt{0} $ , the $ i $ -th card is initially in the draw pile. If $ s_i = \texttt{1} $ , the $ i $ -th card is initially in Jellyfish's hand. It is guaranteed that the sum of $ n^2 $ over all test cases does not exceed $ 120^2 $ .

Output Format

For each test case, output the probability that Jellyfish can empty the draw pile modulo $ 1\,000\,000\,007 $ .

Explanation/Hint

In the first test case, Jellyfish will keep playing cards with power $ 1 $ until Jellyfish draws a card with power $ 0 $ or power $ 2 $ . If Jellyfish draws a card with power $ 0 $ , she will eventually empty her hand. If Jellyfish draws a card with power $ 2 $ , she will eventually empty the draw pile. Since there is an equal chance of drawing $ 0 $ or $ 2 $ , the answer is $ \frac{1}{2} $ , and $ 2 \cdot 500\,000\,004 \equiv 1 \pmod {10^9+7} $