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

Điểm cố định

Đề bài

Mô tả

Cho một hoán vị a0,a1,,an1 của n số nguyên từ 0 đến n1.

Một vị trí i được gọi là điểm cố định của hoán vị nếu ai=i.

Bạn được phép thực hiện nhiều nhất một lần đổi chỗ hai phần tử của hoán vị (cũng có thể không đổi gì cả). Hãy xác định số điểm cố định lớn nhất có thể đạt được sau thao tác.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a0,a1,,an1 — hoán vị đã cho.

Dữ liệu ra

In ra một số nguyên duy nhất là số điểm cố định lớn nhất sau nhiều nhất một lần đổi chỗ.

Ràng buộc

  • 1n105
  • 0ain1, các giá trị ai đôi một khác nhau.

Ví dụ

Input Output Giải thích
5
0 1 3 4 2
3 Đã có hai điểm cố định (a0=0, a1=1). Đổi chỗ a3=4a4=2 không tạo thêm điểm cố định nào (cặp (a2,a4)=(3,2) cũng không tạo cặp đối xứng). Tuy nhiên, đổi chỗ a2=3 với a3=4 làm cho a3=3, được tổng cộng 3 điểm cố định.
7
0 1 2 4 3 6 5
5 Đã có ba điểm cố định (i=0,1,2). Cặp (a3,a4)=(4,3) thoả a3=4,a4=3, nên đổi chỗ chúng tạo thêm hai điểm cố định nữa, tổng cộng 5.
3
1 2 0
1 Không có điểm cố định nào và không có cặp đối xứng. Với một lần đổi chỗ, ta luôn có thể tạo đúng một điểm cố định (ví dụ đổi a0a2 được [0,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