CF1857D Strong Vertices
题目描述
给定两个长度为 $n$ 的数组 $a$ 和 $b$,两个数组的下标均从 $1$ 到 $n$。你需要构建一个有向图,如果 $a_u - a_v \ge b_u - b_v$ 且 $u \neq v$,则从 $u$ 到 $v$ 存在一条有向边。
如果某个顶点 $V$ 存在一条路径可以到达所有其他顶点,则称顶点 $V$ 是强顶点。
在有向图中,一条路径是由若干顶点组成的链,这些顶点之间通过有向边连接,沿着边的方向可以从顶点 $u$ 到达顶点 $v$。
你的任务是找出所有强顶点。
例如,若 $a=[3,1,2,4]$,$b=[4,3,2,1]$,则该图如下所示:

该图中只有编号为 $4$ 的顶点是强顶点。
输入格式
第一行包含一个整数 $t$($1\le t\le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($2 \le n \le 2\cdot 10^5$),表示数组 $a$ 和 $b$ 的长度。
每个测试用例的第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$($-10^9 \le a_i \le 10^9$),表示数组 $a$。
每个测试用例的第三行包含 $n$ 个整数 $b_1,b_2,\dots,b_n$($-10^9 \le b_i \le 10^9$),表示数组 $b$。
保证所有测试用例中 $n$ 的总和不超过 $2\cdot 10^5$。
输出格式
对于每个测试用例,输出两行:第一行输出强顶点的数量,第二行按升序输出所有强顶点的编号。
说明/提示
第一个样例已在题目描述中给出。
对于第二个样例,图如下所示:

该图中有两个强顶点,编号为 $3$ 和 $5$。注意,顶点 $3$ 和 $5$ 之间存在双向边。
对于第三个样例,两个顶点之间只有一条从顶点 $2$ 指向顶点 $1$ 的有向边,因此唯一的强顶点是 $2$。
对于第四个样例,所有顶点之间都存在双向边,因此每个顶点都可以到达任意其他顶点。
由 ChatGPT 4.1 翻译