AT_arc049_c [ARC049C] ぬりまーす

题目描述

高桥君在一次比赛中取得了优异的成绩,因此获得了出行旅游的机会,他趁机买了一款名为「ぬりまーす」的颜料。 与此同时,高桥君在手里有一张包含 $N$ 个顶点的有向图,图中的顶点分别编号为 $1, 2, \ldots, N$。 由于高桥君非常喜欢涂颜料,他打算利用这款「ぬりまーす」颜料给这些顶点上色。然而,他不想随便上色,于是为某些顶点设置了以下两种条件: - 类型1:给顶点 $x$ 上色时,顶点 $y$ 必须已经被涂上颜色。 - 类型2:给顶点 $u$ 上色时,顶点 $v$ 不能已经被涂上颜色。 类型1的约束共有 $A$ 个,而类型2的约束有 $B$ 个。 一开始,所有的顶点都没有上色。你的任务是找出一种最佳顺序给顶点上色,以实现上色顶点数量的最大化。

输入格式

输入由标准输入提供,格式如下: > $N$ $A$ $x_1$ $y_1$ $x_2$ $y_2$ : $x_A$ $y_A$ $B$ $u_1$ $v_1$ $u_2$ $v_2$ : $u_B$ $v_B$ - 第一行是整数 $N$,表示图中顶点的数量,满足 $1 \le N \le 100$。 - 第二行是整数 $A$,表示类型1约束的数量,范围是 $0 \le A \le 100$。 - 接下来的 $A$ 行中,每行包含两个整数 $x_i, y_i$,表示一种类型1约束:当给顶点 $x_i$ 上色时,顶点 $y_i$ 必须已经上色。这里 $1 \le x_i, y_i \le N$ 且 $x_i \neq y_i$。 - 紧接着一行是整数 $B$,表示类型2约束的数量,范围是 $0 \le B \le 10$。 - 随后的 $B$ 行中,每行包含两个整数 $u_i, v_i$,表示一种类型2约束:当给顶点 $u_i$ 上色时,顶点 $v_i$ 不能已经上色。这里 $1 \le u_i, v_i \le N$ 且 $u_i \neq v_i$。 - 输入中的约束可能导致某些顶点永远无法被上色,并且可能有重复的约束。

输出格式

请输出在所有约束条件下,最多能上色的顶点数量。输出要以换行符结束。

说明/提示

### 示例解释 1 可以依次给顶点3→顶点2→顶点1上色。 ### 示例解释 2 在这种约束下,顶点1不能上色。 ### 示例解释 3 在这种约束下,没有顶点可以上色。 **本翻译由 AI 自动生成**