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 自动生成**