02/10/2018, 13:58

CHATCHIT spoj

Nguồn đề bài: http://vn.spoj.com/problems/CHATCHIT/ 1. Đề bài CHATCHIT spoj Sau khi trải qua kỳ thi chọn đội tuyển Quốc tế đầy căng thẳng, các vCoders quyết định tạm gác niềm đam mê tin học của mình một thời gian để đi tìm những niềm vui mới. Một số quyết định đi Hồng Kông nghỉ ...

Nguồn đề bài: http://vn.spoj.com/problems/CHATCHIT/

1. Đề bài CHATCHIT spoj

Sau khi trải qua kỳ thi chọn đội tuyển Quốc tế đầy căng thẳng, các vCoders quyết định tạm gác niềm đam mê tin học của mình một thời gian để đi tìm những niềm vui mới. Một số quyết định đi Hồng Kông nghỉ mát để bù lại những ngày học hành vất vả. Số khác quay lại trường học. Nhưng đặc biệt, có một số vCoders sau những buổi chat đêm đã đi đến quyết định: dùng kiến thức tin học của mình góp phần giữ gìn sự trong sáng của tiếng Việt. Nhóm quyết định lấy tên là vitko (Viet-Coder) để mọi người ý thức được công việc thầm lặng họ đang làm.
Nhận thấy rằng ngôn ngữ chat tiếng Việt bị lạm dụng quá nhiều, các vitkos đã suy nghĩ và tìm một thuật toán để dịch từ ngôn ngữ chat trở lại tiếng Việt. Dữ liệu vào sẽ là một câu chat (gồm các chữ cái latin in thường và không dấu). Thuật toán của các vitkos gồm một số quy tắc được áp dụng theo thứ tự vào câu văn. Các quy tắc này dựa trên hai thao tác cơ bản:

  • R(p)=q: thay tất cả các chuỗi con p bằng chuỗi con q trong câu văn.
  • RW(p)=q: thay tất cả các từ p bằng từ q trong câu văn.

Các quy tắc được áp dụng lần lượt theo thứ tự như sau:

  • RW(‘k’)=’khong’
  • RW(‘ko’)=’khong’
  • RW(‘ng’)=’nguoi’
  • RW(‘n’)=’nhieu’
  • RW(‘dc’)=’duoc’
  • RW(‘hok’)=’khong’
  • RW(‘ntn’)=’nhu the nao’
  • RW(‘kq’)=’ket qua’
  • R(‘j’)=’gi’
  • R(‘w’)=’qu’
  • R(‘f’)=’ph’
  • R(‘dz’)=’d’
  • R(‘z’)=’d’

Mặc dù đây là những quy tắc rất đơn giản, tuy nhiên chúng cũng giúp các vitkos đỡ căng mắt khi nhìn vào các đoạn chat! Hãy giúp các vitkos cài đặt thuật toán này. Họ sẽ dùng chương trình của bạn để viết một plugin cho Yahoo Messenger

0