CF1630F.Making It Bipartite

NOI/NOI+/CTSC

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an undirected graph of nn vertices indexed from 11 to nn, where vertex ii has a value aia_i assigned to it and all values aia_i are different. There is an edge between two vertices uu and vv if either aua_u divides ava_v or ava_v divides aua_u.

Find the minimum number of vertices to remove such that the remaining graph is bipartite, when you remove a vertex you remove all the edges incident to it.

给你一个包含 nn 个顶点的无向图,顶点编号从 11 到 nn。每个顶点 ii 被赋予一个值 aia_i,且所有 aia_i 互不相同。当且仅当 aua_u 整除 ava_v 或 ava_v 整除 aua_u 时,顶点 uu 和 vv 之间存在一条边。

求最少需要删除多少个顶点,才能使得剩余图是二分图;删除一个顶点的同时,也将与其关联的所有边一并删除。

输入格式

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. Description of the test cases follows.

The first line of each test case contains a single integer nn (1≤n≤5⋅1041 \le n \le 5\cdot10^4) — the number of vertices in the graph.

The second line of each test case contains nn integers, the ii-th of them is the value aia_i (1≤ai≤5⋅1041 \le a_i \le 5\cdot10^4) assigned to the ii-th vertex, all values aia_i are different.

It is guaranteed that the sum of nn over all test cases does not exceed 5⋅1045\cdot10^4.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤5⋅1041 \le n \le 5\cdot10^4),表示图中顶点的数量。

每个测试用例的第二行包含 nn 个整数,其中第 ii 个整数为分配给第 ii 个顶点的值 aia_i(1≤ai≤5⋅1041 \le a_i \le 5\cdot10^4),所有 aia_i 的值互不相同。

保证所有测试用例的 nn 值之和不超过 5⋅1045\cdot10^4。

输出格式

For each test case print a single integer — the minimum number of vertices to remove such that the remaining graph is bipartite.

对于每个测试用例,输出一个整数——使得剩余图是二分图所需删除的最少顶点数。

输入输出样例

  • 输入#1

    4
    4
    8 4 2 1
    4
    30 2 3 5
    5
    12 4 6 2 3
    10
    85 195 5 39 3 13 266 154 14 2

    输出#1

    2
    0
    1
    2

说明/提示

In the first test case if we remove the vertices with values 11 and 22 we will obtain a bipartite graph, so the answer is 22, it is impossible to remove less than 22 vertices and still obtain a bipartite graph.

Before

After

test case #1

In the second test case we do not have to remove any vertex because the graph is already bipartite, so the answer is 00.

Before

After

test case #2

In the third test case we only have to remove the vertex with value 1212, so the answer is 11.

Before

After

test case #3

In the fourth test case we remove the vertices with values 22 and 195195, so the answer is 22.

Before

After

test case #4

在第一个测试用例中,如果我们删除值为 11 和 22 的顶点,则会得到一个二分图,因此答案是 22;不可能仅删除少于 22 个顶点就仍得到一个二分图。

删除前

删除后

测试用例 #1

在第二个测试用例中,我们无需删除任何顶点,因为该图本身已是二分图,因此答案是 00。

删除前

删除后

测试用例 #2

在第三个测试用例中,我们只需删除值为 1212 的顶点,因此答案是 11。

删除前

删除后

测试用例 #3

在第四个测试用例中,我们删除值为 22 和 195195 的顶点,因此答案是 22。

删除前

删除后

测试用例 #4

输入解题思路,AI测评打分。不知道怎么写?

首页