CF1937B Binary Path

题目描述

给你一个 $2 \times n$ 的网格,网格中填有 $0$ 和 $1$。第 $i$ 行第 $j$ 列的数字记为 $a_{ij}$。 有一只蚂蚱位于左上角的格子 $(1, 1)$,它每次只能向右或向下跳一格。它想要到达右下角的格子 $(2, n)$。请考虑沿路径经过的格子中数字按顺序组成的长度为 $n+1$ 的二进制字符串。 你的目标是: 1. 找出通过任意可行路径能够得到的字典序最小的字符串; 2. 计算有多少条路径能够得到这个字典序最小的字符串。 $^\dagger$ 如果两个字符串 $s$ 和 $t$ 长度相同,$s$ 的字典序小于 $t$,当且仅当在第一个不同的位置,$s$ 的字符小于 $t$ 的对应字符。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每组测试用例的第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$)。 第二行包含一个长度为 $n$ 的二进制字符串 $a_{11} a_{12} \ldots a_{1n}$($a_{1i}$ 为 $0$ 或 $1$)。 第三行包含一个长度为 $n$ 的二进制字符串 $a_{21} a_{22} \ldots a_{2n}$($a_{2i}$ 为 $0$ 或 $1$)。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每组测试用例,输出两行: 1. 第一行输出通过任意可行路径能够得到的字典序最小的字符串; 2. 第二行输出能够得到该字符串的路径数量。

说明/提示

在第一个测试用例中,字典序最小的字符串是 $\mathtt{000}$。有两条路径可以得到这个字符串: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1937B/28bc26c21acb39dafc863512440b57a82f70d617.png) 在第二个测试用例中,字典序最小的字符串是 $\mathtt{11000}$。只有一条路径可以得到这个字符串: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1937B/f024d427300a33d2f71c9946e45249754a59348c.png) 由 ChatGPT 4.1 翻译