CF1354E.Graph Coloring

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an undirected graph without self-loops or multiple edges which consists of nn vertices and mm edges. Also you are given three integers n1n_1, n2n_2 and n3n_3.

Can you label each vertex with one of three numbers 1, 2 or 3 in such way, that:

  1. Each vertex should be labeled by exactly one number 1, 2 or 3;
  2. The total number of vertices with label 1 should be equal to n1n_1;
  3. The total number of vertices with label 2 should be equal to n2n_2;
  4. The total number of vertices with label 3 should be equal to n3n_3;
  5. ∣colu−colv∣=1|col_u - col_v| = 1 for each edge (u,v)(u, v), where colxcol_x is the label of vertex xx.

If there are multiple valid labelings, print any of them.

给你一个无向图,该图不含自环和重边,共有 nn 个顶点和 mm 条边。同时,你还给定三个整数 n1n_1、n2n_2 和 n3n_3。

你能否为每个顶点标上三个数字之一(即 11、22 或 33),使得满足以下条件:

  1. 每个顶点必须且仅能被赋予一个数字 11、22 或 33;
  2. 标号为 11 的顶点总数恰好为 n1n_1;
  3. 标号为 22 的顶点总数恰好为 n2n_2;
  4. 标号为 33 的顶点总数恰好为 n3n_3;
  5. 对于每条边 (u,v)(u, v),均有 ∣colu−colv∣=1|col_u - col_v| = 1,其中 colxcol_x 表示顶点 xx 的标号。

若存在多种合法的标号方案,请输出任意一种。

输入格式

The first line contains two integers nn and mm (1≤n≤50001 \le n \le 5000; 0≤m≤1050 \le m \le 10^5) — the number of vertices and edges in the graph.

The second line contains three integers n1n_1, n2n_2 and n3n_3 (0≤n1,n2,n3≤n0 \le n_1, n_2, n_3 \le n) — the number of labels 1, 2 and 3, respectively. It's guaranteed that n1+n2+n3=nn_1 + n_2 + n_3 = n.

Next mm lines contan description of edges: the ii-th line contains two integers uiu_i, viv_i (1≤ui,vi≤n1 \le u_i, v_i \le n; ui≠viu_i \neq v_i) — the vertices the ii-th edge connects. It's guaranteed that the graph doesn't contain self-loops or multiple edges.

第一行包含两个整数 nn 和 mm(1≤n≤50001 \le n \le 5000;0≤m≤1050 \le m \le 10^5)—— 分别表示图中的顶点数和边数。

第二行包含三个整数 n1n_1、n2n_2 和 n3n_3(0≤n1,n2,n3≤n0 \le n_1, n_2, n_3 \le n)—— 分别表示标签为 1、2 和 3 的顶点数量。保证 n1+n2+n3=nn_1 + n_2 + n_3 = n。

接下来的 mm 行描述图中的边:第 ii 行包含两个整数 uiu_i、viv_i(1≤ui,vi≤n1 \le u_i, v_i \le n;ui≠viu_i \neq v_i)—— 表示第 ii 条边所连接的两个顶点。保证图中不含自环或重边。

输出格式

If valid labeling exists then print "YES" (without quotes) in the first line. In the second line print string of length nn consisting of 1, 2 and 3. The ii-th letter should be equal to the label of the ii-th vertex.

If there is no valid labeling, print "NO" (without quotes).

如果存在有效的标号方案,则在第一行输出 "YES"(不带引号)。在第二行输出一个长度为 nn 的字符串,该字符串仅由字符 1、2 和 3 组成。其中第 ii 个字符应等于第 ii 个顶点的标号。

如果不存在有效的标号方案,则输出 "NO"(不带引号)。

输入输出样例

  • 输入#1

    6 3
    2 2 2
    3 1
    5 4
    2 5

    输出#1

    YES
    112323
  • 输入#2

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

    输出#2

    NO

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

首页