USACO 2025 - Friendship Editing

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) con bò của Farmer John được đánh số từ \(1\) đến \(N\) (\(2\le N\le 16\)). Quan hệ bạn bè giữa các con bò có thể được mô hình hóa bằng một đồ thị vô hướng có \(M\) (\(0\le M\le N(N-1)/2\)) cạnh. Hai con bò là bạn bè khi và chỉ khi có một cạnh nối chúng trong đồ thị.

Trong một thao tác, bạn có thể thêm hoặc xóa một cạnh khỏi đồ thị. Hãy tính số thao tác tối thiểu cần thiết để đảm bảo tính chất sau: nếu hai con bò \(a\)\(b\) là bạn bè, thì với mọi con bò khác \(c\), ít nhất một trong hai con \(a\)\(b\) là bạn bè với \(c\).

Dữ liệu vào

Dòng đầu tiên chứa \(N\)\(M\).

\(M\) dòng tiếp theo, mỗi dòng chứa một cặp bạn bè \(a\)\(b\) (\(1\le a<b\le N\)). Không có cặp bạn bè nào xuất hiện quá một lần.

Dữ liệu ra

In ra số cạnh cần thêm hoặc xóa.

Ví dụ

Ví dụ 1

Input
3 1
1 2
Output
1
Giải thích

Mạng lưới vi phạm tính chất trên. Ta có thể thêm một trong hai cạnh \((2,3)\) hoặc \((1,3)\), hoặc xóa cạnh \((1,2)\) để khắc phục.

Ví dụ 2

Input
3 2
1 2
2 3
Output
0
Giải thích

Không cần thay đổi gì.

Ví dụ 3

Input
4 4
1 2
1 3
1 4
2 3
Output
1

Phân nhóm

  • Dữ liệu 4–13: Có một test cho mỗi \(N\in[6,15]\), theo thứ tự tăng dần.
  • Dữ liệu 14–18: \(N=16\).

Nguồn

USACO 2025 February Contest, Gold — Friendship Editing. Tác giả: Benjamin Qi.

https://usaco.org/index.php?page=viewproblem2&cpid=1499

Bình luận

Mới nhất
Tải bình luận...

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

Kỳ thi: