USACO 2020 - Mad Scientist

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

Ben, anh họ của Farmer John, tình cờ lại là một nhà khoa học điên. Thông thường, điều này gây ra khá nhiều bất hòa trong những buổi họp mặt gia đình, nhưng đôi khi nó cũng có ích, đặc biệt là khi Farmer John phải đối mặt với những vấn đề độc đáo và khác thường liên quan đến đàn bò của mình.

Hiện tại, Farmer John đang gặp một vấn đề độc đáo và khác thường với đàn bò. Gần đây, ông đặt mua \(N\) con bò (\(1\leq N\leq 1000\)) thuộc hai giống khác nhau: Holstein và Guernsey. Trong đơn đặt hàng, ông mô tả đàn bò bằng một xâu gồm \(N\) ký tự, mỗi ký tự là H (đại diện cho Holstein) hoặc G (đại diện cho Guernsey). Không may, khi đàn bò đến trang trại và ông xếp chúng thành một hàng, thứ tự giống của chúng tạo thành một xâu khác với xâu ban đầu.

Gọi hai xâu này là \(A\)\(B\), trong đó \(A\) là xâu các ký hiệu giống mà Farmer John mong muốn ban đầu, còn \(B\) là xâu ông thấy khi đàn bò đến. Thay vì chỉ kiểm tra xem việc sắp xếp lại các con bò trong \(B\) có đủ để thu được \(A\) hay không, Farmer John nhờ anh họ Ben dùng tài năng khoa học của mình để giúp ông giải quyết vấn đề.

Sau nhiều tháng làm việc, Ben chế tạo ra một cỗ máy phi thường mang tên máy-đảo-giống-nhiều-bò 3000, có thể chọn bất kỳ xâu con gồm các con bò liên tiếp nào và đảo giống của chúng: mọi H trong xâu con trở thành G, và mọi G trở thành H. Farmer John muốn tìm số lần ít nhất cần sử dụng cỗ máy để biến thứ tự hiện tại \(B\) thành thứ tự mong muốn ban đầu \(A\). Đáng tiếc, kỹ năng của nhà khoa học điên Ben chỉ dừng ở việc chế tạo những thiết bị tài tình, vì vậy bạn cần giúp Farmer John giải bài toán hóc búa này.

Phân nhóm

Tất cả các test tuân theo các ràng buộc đã nêu.

Dữ liệu vào

Dòng đầu tiên chứa \(N\), hai dòng tiếp theo lần lượt chứa các xâu \(A\)\(B\). Mỗi xâu gồm \(N\) ký tự, mỗi ký tự là H hoặc G.

Dữ liệu ra

In số lần ít nhất cần sử dụng cỗ máy để biến \(B\) thành \(A\).

Ví dụ

Ví dụ 1

Input
7
GHHHGHH
HHGGGHH
Output
2
Giải thích

Đầu tiên, FJ có thể đảo xâu con chỉ gồm ký tự đầu tiên, biến \(B\) thành GHGGGHH. Tiếp theo, ông có thể đảo xâu con gồm ký tự thứ ba và thứ tư để thu được \(A\). Tất nhiên, cũng có những cách kết hợp hai lần sử dụng cỗ máy khác cho kết quả đúng.

Nguồn

USACO 2020 February Contest, Bronze - Mad Scientist: https://usaco.org/index.php?page=viewproblem2&cpid=1012

Tác giả: Brian Dean.

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: