QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100

#12946. 外交

Statistiques

你是一个古老帝国的参议院议员,该帝国由一位强权独裁者统治。你加入了一个由参议院两党组成的秘密委员会,正密谋推翻这位独裁者。

为了使阴谋成功,帝国中所有的州最终都必须支持该计划——而要实现这一点,所有州的州长都需要属于同一个党派。

目前,每位州长要么是橙党(Orange Party)成员,要么是紫党(Purple Party)成员。由于你确信自己可以让任何一个党派支持该计划,因此最终哪个党派获胜并不重要。

秘密委员会研究了政治局势,确定如果两位州长互为朋友且属于同一党派,他们就会相互影响。为了争取所有州长加入,每个月都会有一名说客不惜一切代价让一名州长转换党派。当这种情况发生时,该州长所有属于同一党派的朋友也会转换党派,这些朋友的朋友(如果也在该党派内)也会转换,以此类推。为了避免怀疑,秘密委员会每个月会轮流派遣橙党/紫党说客。他们可以在第一个月选择从任何一个党派开始。

秘密委员会还知道哪些州长互为朋友,每位州长至少与另一位州长是朋友,并且不存在仅与彼此为友的孤立群体。

你的任务是确定所有州长属于同一党派所需的最少月数。一旦实现这一点,阴谋的下一步就可以实施了。

输入格式

输入包含多个测试用例。每个测试用例的第一行包含两个整数 $n$ ($1 \le n \le 100$) 和 $m$ ($n-1 \le m \le n(n-1)/2$),其中 $n$ 是州长的数量,$m$ 是已知的友谊关系数量。下一行包含 $n$ 个整数,均为 0 或 1,按顺序表示州长当前的党派归属(0=橙党,1=紫党)。接下来的 $m$ 行,每行包含两个整数 $a$ 和 $b$ ($1 \le a < b \le n$),表示州长 $a$ 和州长 $b$ 是朋友。正如现实生活中一样,友谊是双向的:如果 $a$ 是 $b$ 的朋友,那么 $b$ 也是 $a$ 的朋友。所有 $m$ 对 $(a, b)$ 都是唯一的。输入以一行两个 0 结束。

输出格式

对于每个测试用例,输出一个整数,表示所有州长属于同一党派所需的最少月数。每个整数占一行,不要包含空格。输出之间不要打印空行。

样例

输入 1

4 3
0 1 0 0
1 2
2 3
2 4
5 4
0 1 1 0 1
1 2
2 3
3 4
4 5
0 0

输出 1

1
2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.