CFCF2163C.Monopati
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个 2 行 n 列的网格 a,其中每个单元格的取值在 1 到 2n 之间。
定义 f(l,r)(其中 1≤l≤r≤2n):它表示一个 2 行 n 列的二进制∗网格 b,满足当且仅当 l≤ai,j≤r 时,bi,j=1。注意,单元格 (i,j) 表示自上向下第 i 行、从左到右第 j 列的单元格。
请统计满足 1≤l≤r≤2n 的整数对 (l,r) 的个数,使得在 f(l,r) 中,存在一条由值为 1 的相邻单元格†构成的 向下-向右 路径,从单元格 (1,1) 到 (2,n)。
∗ 一个网格当且仅当其每个单元格的取值为 0 或 1 时被认为是二进制网格。
† 向下-向右的相邻路径是指这样一个单元格序列:序列中的每个单元格与前一个单元格要么共享其上边(向下移动),要么共享其左边(向右移动)。
输入格式
每个测试包含多组测试用例。第一行包含测试用例数 t(1≤t≤104)。随后给出各测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤2⋅105)——网格的列数。
第二行恰好包含 n 个整数 a1,1,a1,2,…,a1,n(1≤a1,i≤2n)——网格第一行各单元格的取值。
第三行恰好包含 n 个整数 a2,1,a2,2,…,a2,n(1≤a2,i≤2n)——网格第二行各单元格的取值。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对每个测试用例,在单独一行输出一个整数,表示满足 1≤l≤r≤2n 且在 f(l,r) 中存在一条从 (1,1) 到 (2,n) 的、由值为 1 的相邻单元格构成的向下-向右路径的整数对 (l,r) 的数量。
输入输出样例
输入#1
5 2 1 3 3 1 3 1 2 3 3 2 1 4 1 5 5 5 5 3 1 2 4 8 8 8 8 8 8 8 8 6 6 6 5 7 9 12 1 4 2 8 5 6
输出#1
2 5 4 8 25
说明/提示
考虑第一个样例。
网格 f(1,1)、f(1,2) 如下:
10
01
从左上角到右下角不存在仅由 1 组成的路径,因此 (1,1) 与 (1,2) 不计入答案。
网格 f(1,3) 与 f(1,4) 如下:
11
11
由于存在从 (1,1) 到 (2,2) 的合法路径,所以 (1,3) 与 (1,4) 计入答案。
网格 f(2,2)、f(4,4) 如下:
00
00
网格 f(2,3)、f(2,4)、f(3,3)、f(3,4) 如下:
01
10
因此 (2,3)、(2,4)、(3,3) 与 (3,4) 均不计入答案。
唯一被计入的配对是 (1,3) 与 (1,4),因此答案为 2。