#641. 非降序排列

非降序排列

题目描述

给定两个长度为 nn 的整数数组 aabb

你可以任选一组下标的子集,并对该子集中的每个下标 ii 同时交换 aia_ibib_i(也就是说,对于选中的每个 ii 执行一次交换 (ai,bi)(a_i,b_i) )。如果在进行这些位置上的交换后,数组 aa 与数组 bb非降序(即从左到右不减少),则该下标子集被称为 好子集

你的任务是计算好子集的个数。由于结果可能很大,请对 998244353998244353 取模输出答案。

输入格式

第一行包含一个整数 tt1t5001\le t\le 500)——测试用例数。

每个测试用例包含三行:

  • 第一行包含一个整数 nn1n1001\le n\le 100)。
  • 第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n1ai10001\le a_i\le 1000)。
  • 第三行包含 nn 个整数 b1,b2,,bnb_1,b_2,\dots,b_n1bi10001\le b_i\le 1000)。

额外保证:对于每个测试用例,至少存在一个好子集。

输出格式

对于每个测试用例,输出一行,包含一个整数 —— 好子集的个数,对 998244353998244353 取模。

样例输入

3
3
2 1 4
1 3 2
1
4
4
5
2 3 3 4 4
1 1 3 5 6

样例输出

2
2
8

说明

样例解释

  • 第一个测试用例中,两个好子集{1,3}\{1,3\}{2}\{2\}
  • 第二个测试用例中,两个好子集{1}\{1\}\varnothing(空集)。
  • 第三个测试用例中的八个好子集列举见样例:$\{1,2,3,4,5\},\{1,2,3\},\{1,2,4,5\},\{1,2\},\{3,4,5\},\{3\},\{4,5\},\varnothing$。

数据范围

  • 1t5001\le t\le 500
  • 1n1001\le n\le 100
  • 1ai,bi10001\le a_i,b_i\le 1000
  • 对每个测试用例至少存在一个好子集。