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

Chu trình Euler nhỏ nhất

Đề bài

Mô tả

Cho đồ thị có hướng đầy đủ Kn gồm n đỉnh: với mỗi cặp đỉnh uv đều có cả hai cạnh có hướng (u,v)(v,u); không có khuyên.

Một chu trình đi qua mỗi cạnh có hướng đúng một lần (được phép đi lại qua các đỉnh) luôn tồn tại. Ta biểu diễn chu trình đó bằng danh sách n(n1)+1 đỉnh

v1,v2,,vn(n1),vn(n1)+1=v1,

trong đó mỗi cặp (vi,vi+1) là một cạnh và xuất hiện đúng một lần.

Trong tất cả các chu trình như vậy, hãy xét chu trình có thứ tự từ điển nhỏ nhất. Vì độ dài chu trình có thể rất lớn, bạn chỉ cần in ra đoạn [l,r] của nó, tức là vl,vl+1,,vr.

Dữ liệu vào

  • Dòng đầu chứa số nguyên T: số lượng bộ dữ liệu.
  • T dòng tiếp theo, mỗi dòng chứa ba số nguyên n, l, r.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng gồm các đỉnh vl,vl+1,,vr, cách nhau bởi dấu cách.

Ràng buộc

  • 1T100
  • 2n105
  • 1lrn(n1)+1
  • rl+1105
  • Tổng của n trên mọi bộ dữ liệu không vượt quá 105.
  • Tổng của rl+1 trên mọi bộ dữ liệu không vượt quá 105.

Ví dụ

Input Output Giải thích
3
2 1 3
3 3 6
99995 9998900031 9998900031
1 2 1
1 3 2 3
1
Với n=3, chu trình nhỏ nhất là 1,2,1,3,2,3,1; đoạn [3,6]1 3 2 3. Với bộ thứ ba, vị trí cuối cùng luôn là đỉnh 1.
1
2 2 3
2 1 Với n=2, chu trình là 1,2,1; đoạn [2,3]2 1.

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