USACO 2026 Third Contest, Gold, Good Cyclic Shifts

Xem PDF

Điểm: 1 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Đối với một hoán vị \(p_1, p_2, \dots, p_N\) của \(1 \dots N\) (\(1 \le N \le 2 \times 10^5\)), hãy đặt \(f(p) = \frac{1}{2} \sum_{i=1}^{N} |p_i - i| .\)
Một hoán vị được gọi là tốt nếu nó có thể được biến đổi thành hoán vị đồng nhất bằng cách sử dụng tối đa \(f(p)\) lần hoán đổi các phần tử liền kề.

Cho một hoán vị \(p_1, p_2, \dots, p_N\) của các số \(1 \dots N\) (\(1 \le N \le 2 \times 10^5\)), gọi

\(f(p) = \frac{1}{2} \sum_{i=1}^{N} |p_i - i|.\)

Một hoán vị được gọi là good nếu nó có thể được biến thành hoán vị đồng nhất bằng không quá \(f(p)\) lần đổi chỗ giữa hai phần tử kề nhau.

Cho một hoán vị, hãy tìm những phép dịch vòng (cyclic shift) của nó là good.

Input Format

  • Dữ liệu vào gồm \(T\) (\(1 \le T \le 10^5\)) test độc lập. Mỗi test được mô tả như sau:
  • Dòng đầu chứa số \(N\).
  • Dòng thứ hai chứa \(p_1, p_2, \dots, p_N\) (\(1 \le p_i \le N\)), đảm bảo rằng đây là một hoán vị của \(1 \dots N\).
  • Đảm bảo tổng tất cả các \(N\) của các test không vượt quá \(10^6\).

Output Format

  • Với mỗi test, in ra hai dòng:
  • Dòng thứ nhất in số lượng phép dịch vòng good\(k\).
  • Dòng thứ hai in \(k\) số nguyên \(s\) (\(0 \le s < N\)) theo thứ tự tăng dần, nghĩa là hoán vị \(p\) sẽ good khi được dịch vòng sang phải \(s\) lần.

Test 1

Input
3
5
5 4 3 2 1
4
1 2 4 3
5
1 2 3 4 5
Output
0

2
0 1
5
0 1 2 3 4

Explanation

Xét test thứ hai với \(p=[1,2,4,3]\).

  • \(f(p)=(|1-1|+|2-2|+|4-3|+|3-4|)/2=1\). Vì \(p\) có thể được biến thành hoán vị đồng nhất chỉ với một lần đổi chỗ giữa \(p_3\)\(p_4\), nên \(p\)good.

  • Khi dịch vòng \(p\) sang phải 1 lần, ta được \(q=[3,1,2,4]\). Khi đó
    \(f(q)=(|3-1|+|1-2|+|2-3|+|4-4|)/2=2\). Vì \(q\) có thể được biến thành hoán vị đồng nhất trong hai bước bằng cách đưa \(q_1\) tiến lên hai vị trí, nên \(q\)good.

Có thể thấy rằng hai phép dịch vòng còn lại không phải là good.

Scoring

  • Input \(2\): \(N \le 10\)
  • Inputs \(3-5\): \(T \le 10, N \le 2000\)
  • Inputs \(6-11\): Không có ràng buộc thêm.

Bình luận

Gần nhất
Tải bình luận...

Không có bình luận nào.