USACO 2013 - Liars and Truth Tellers

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: 1600 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Sau khi ở bên những con bò quá lâu, Farmer John đã bắt đầu hiểu ngôn ngữ của chúng. Hơn nữa, ông nhận thấy trong số \(N\) con bò (\(2 \le N \le 1000\)), một số luôn nói thật, còn những con khác luôn nói dối.

FJ cẩn thận lắng nghe \(M\) phát biểu (\(1 \le M \le 10\,000\)) từ những con bò, mỗi phát biểu có dạng x y T, nghĩa là "bò \(x\) khẳng định bò \(y\) luôn nói thật", hoặc x y L, nghĩa là "bò \(x\) khẳng định bò \(y\) luôn nói dối". Mỗi phát biểu liên quan đến một cặp bò khác nhau, và cùng một cặp bò có thể xuất hiện trong nhiều phát biểu.

Không may, FJ cho rằng mình có thể đã ghi sai một số mục trong danh sách, nên có thể không tồn tại cách hợp lệ để xác định mỗi con bò là bò nói thật hay bò nói dối mà nhất quán với cả \(M\) phát biểu trong danh sách của FJ. Để giúp FJ tận dụng được nhiều nhất có thể từ danh sách, hãy tính giá trị \(A\) lớn nhất sao cho tồn tại một cách hợp lệ để xác định mỗi con bò là bò nói thật hoặc bò nói dối, đồng thời nhất quán với \(A\) mục đầu tiên trong danh sách của FJ.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên \(N\)\(M\), cách nhau bởi dấu cách.
  • \(M\) dòng tiếp theo, mỗi dòng có dạng x y L hoặc x y T, mô tả một phát biểu của bò \(x\) về bò \(y\).

Dữ liệu ra

In ra giá trị \(A\) lớn nhất sao cho \(A\) mục đầu tiên trong danh sách của FJ có thể nhất quán với một cách gán trạng thái "nói thật" hoặc "nói dối" nào đó cho \(N\) con bò.

Ví dụ

Ví dụ 1

Input
4 3
1 4 L
2 3 T
4 1 T
Output
2
Giải thích

\(4\) con bò và \(3\) phát biểu. Bò \(1\) nói rằng bò \(4\) nói dối, bò \(2\) nói rằng bò \(3\) nói thật và bò \(4\) nói rằng bò \(1\) nói thật.

Phát biểu \(1\)\(3\) không thể đồng thời được thỏa mãn, nhưng phát biểu \(1\)\(2\) thì có thể, nếu ta cho các bò từ \(1\) đến \(3\) nói thật và bò \(4\) nói dối.

Nguồn

USACO 2013 January Contest, Bronze — Problem 3: Liars and Truth Tellers

Tác giả đề: Brian Dean, 2013.

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: