Fox và đường đi ngắn nhất

Đề bài

Mô tả

Cho một số nguyên dương k. Bạn cần dựng một đồ thị vô hướng đơn G sao cho số đường đi ngắn nhất giữa đỉnh 1 và đỉnh 2 đúng bằng k.

Mỗi cạnh của đồ thị có độ dài 1. Đường đi ngắn nhất giữa hai đỉnh là đường đi có số cạnh ít nhất; số đường đi ngắn nhất là số lượng các đường đi khác nhau cùng đạt độ dài nhỏ nhất đó.

Đồ thị phải thoả mãn:

  • Số đỉnh n với 2n1000.
  • Đồ thị vô hướngđơn: không có khuyên (đỉnh không nối với chính nó) và giữa hai đỉnh có nhiều nhất một cạnh.
  • Có ít nhất một đường đi giữa đỉnh 1 và đỉnh 2.

Dữ liệu đảm bảo luôn tồn tại đáp án. Nếu có nhiều đồ thị hợp lệ, in ra bất kỳ đồ thị nào.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên k.

Dữ liệu ra

Dòng đầu in số nguyên n — số đỉnh của đồ thị.

n dòng tiếp theo, mỗi dòng gồm n ký tự mô tả ma trận kề G. Ký tự thứ j của dòng thứ i là 'Y' nếu có cạnh nối đỉnh i và đỉnh j, ngược lại là 'N'. Các đỉnh được đánh số từ 1 đến n.

Ma trận phải đối xứng (Gij=Gji) và đường chéo toàn 'N' (Gii = 'N').

Ràng buộc

  • 1k109

Ví dụ

Input Output Giải thích
1 2
NY
YN
Đồ thị 2 đỉnh nối trực tiếp: đúng 1 đường đi ngắn nhất 1–2.
2 4
NNYY
NNYY
YYNN
YYNN
2 đường đi ngắn nhất độ dài 2: 1–3–2 và 1–4–2.
9 8
NNYYYNNN
NNNNNYYY
YNNNNYYY
YNNNNYYY
YNNNNYYY
NYYYYNNN
NYYYYNNN
NYYYYNNN
3 lựa chọn cho đỉnh giữa thứ nhất nhân 3 lựa chọn cho đỉnh giữa thứ hai cho 9 đường đi ngắn nhất độ dài 3.

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