CF2023C.C+K+S
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给您两个强连接 1 有向图,每个图都有恰好 n 个顶点,但可能有不同数量的边。仔细观察后,您发现了一个重要特征--这两个图中任何一个循环的长度都能被 k 整除。
每个 2n 顶点都属于两种类型中的一种:传入或传出。每个顶点的类型都是已知的。
您需要确定是否有可能在源图之间绘制恰好 n 条有向边,从而满足以下四个条件:
- 任何添加的边的两端都位于不同的图中。
- 从每个传出顶点,正好有一条新增边产生。
- 在每个进入的顶点中,正好有一条添加边进入。
- 在生成的图中,任何循环的长度都能被 k 整除。
1强连接图是指从每个顶点到其他顶点都有一条路径的图。
输入格式
每个测试由多个测试用例组成。第一行包含一个整数 t ( 1≤t≤104 )--测试用例数。测试用例说明如下。
每个测试用例的第一行包含两个整数 n 和 k ( 2≤k≤n≤2⋅105 )--每个图形的顶点数和每个循环的长度可整除的值。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an ( ai∈{0,1} )。如果 ai=0 ,则第一个图形的顶点 i 进入。如果是 ai=1 ,那么第一个图形的顶点 i 是传出的。
每个测试用例的第三行包含一个整数 m1 ( 1≤m1≤5⋅105 ) - 第一个图中的边数。
接下来的 m1 行包含对第一个图的边的描述。其中 i 行包含两个整数 vi 和 ui ( 1≤vi,ui≤n )--第一个图形中从顶点 vi 到顶点 ui 的一条边。
接下来以同样的格式描述第二个图形。
下一行包含 n 个整数 b1,b2,…,bn ( bi∈{0,1} )。如果是 bi=0 ,那么第二个图形的顶点 i 是进入的。如果是 bi=1 ,那么第二个图形的顶点 i 是传出的。
下一行包含一个整数 m2 ( 1≤m2≤5⋅105 )--第二个图形中的边数。
接下来的 m2 行包含对第二个图的边的描述。其中 i 行包含两个整数 vi 和 ui ( 1≤vi,ui≤n )--第二个图中从顶点 vi 到顶点 ui 的一条边。
可以保证这两个图都是强连接的,并且所有循环的长度都能被 k 整除。
保证所有测试案例中 n 的总和不超过 2⋅105 。保证所有测试用例中 m1 与 m2 之和不超过 5⋅105 。
输出格式
对于每个测试用例,如果可以绘制 n 条新边且满足所有条件,则输出 "YES"(不带引号),否则输出 "NO"(不带引号)。
您可以输出任何情况下的答案(例如,字符串 "yEs"、"yes"、"Yes "和 "YES "将被视为肯定答案)。
输入输出样例
输入#1
3 4 2 1 0 0 1 4 1 2 2 3 3 4 4 1 1 0 0 1 4 1 3 3 2 2 4 4 1 3 3 0 0 0 3 1 2 2 3 3 1 1 1 0 3 1 2 2 3 3 1 4 2 1 1 1 1 4 1 2 2 3 3 4 4 1 0 0 0 0 6 1 2 2 1 1 3 3 1 1 4 4 1
输出#1
YES NO YES
说明/提示
样例解释
在第一个测试用例中,从第一个图到第二个图的边可以绘制为 (1,3) 和 (4,2) (这对边中的第一个数字是第一个图中的顶点编号,这对边中的第二个数字是第二个图中的顶点编号),从第二个图到第一个图的边可以绘制为 (1,2) 和 (4,3) (这对边中的第一个数字是第二个图中的顶点编号,这对边中的第二个数字是第一个图中的顶点编号)。
在第二个测试案例中,共有 4 个进入顶点和 2 个离开顶点,因此无法绘制 3 条边。
输入解题思路,AI测评打分。不知道怎么写?