trang chủ / bài tập / nolongpath

Đồ thị không có đường đi dài

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh và m cạnh. Đồ thị không có khuyên (cạnh nối một đỉnh với chính nó) và không có cạnh bội.

Bạn cần định hướng tất cả các cạnh (biến mỗi cạnh vô hướng thành một cung có hướng) sao cho đồ thị có hướng thu được không chứa bất kỳ đường đi nào có độ dài từ 2 trở lên (độ dài đường đi tính bằng số cung đi qua).

Nếu tồn tại nhiều cách định hướng thỏa mãn, in ra một cách bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số đỉnh và số cạnh.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên ui,vi: cạnh thứ i nối hai đỉnh uivi.

Dữ liệu ra

  • Nếu không tồn tại cách định hướng thỏa mãn, in ra NO.
  • Ngược lại, in ra YES ở dòng đầu. Dòng thứ hai in một xâu nhị phân độ dài m: ký tự thứ i là 0 nếu cạnh thứ i được định hướng từ ui đến vi, và là 1 nếu định hướng từ vi đến ui.

Ràng buộc

  • 2n2·105
  • n1m2·105
  • 1ui,vin, uivi
  • Đồ thị liên thông, không có khuyên và cạnh bội.

Ví dụ

Input Output Giải thích
6 5
1 5
2 1
1 4
3 1
6 1
YES
01011
Các cạnh được định hướng: 15, 12, 14, 13, 16. Mọi cung đều đi ra từ đỉnh 1 nên không có đường đi nào dài quá 1. Đáp án khác (ví dụ mọi cung đều đi vào đỉnh 1) cũng được chấp nhận.
4 5
1 2
2 3
3 4
4 1
1 3
NO Đồ thị chứa chu trình lẻ 123 (qua cạnh 1-3), nên không thể định hướng thỏa mãn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0