MÃ HOÁ BURROWS WHEELER

Một phần của tài liệu 150 bai tap toan tin (Trang 100 - 104)

Cho một từ W độ dài n, người ta có một cách mã hố như sau: Ví dụ với từ BANANA. Bước 1: Xét n hốn vị vịng quanh của W:

BANANA ANANAB NANABA ANABAN NABANA ABANAN

Bước 2: Sắp xếp n hốn vị vịng quanh đó theo thứ tự từ điển: ABANAN ANABAN ANANAB BANANA (*) NABANA NANABA Bước 3:

Gọi k là vị trí của từ ban đầu trong dãy hốn vị vịng quanh sau khi đã sắp xếp (ở đây k là 4).

Lấy của mỗi hốn vị vịng quanh (theo đúng thứ tự sau khi đã sắp xếp theo thứ tự từ điển) một ký tự cuối và ghép thành một từ W' (ở đây W' = 'NNBAAA')

Ta gọi cặp (W', k) là mã công khai của từ W.

Yêu cầu 1:

Viết một chương trình đọc file văn bản ENCODE.INP gồm nhiều dòng, mỗi dòng chứa một từ. Tương ứng với mỗi từ W trên một dịng, hãy mã hố và ghi vào file văn bản ENCODE.OUT hai dịng là mã cơng khai của từ đó: dịng 1 ghi từ W', dịng 2 ghi số k.

Yêu cầu 2:

Viết một chương trình khác đọc file văn bản DECODE.INP gồm nhiều cặp dòng: Cứ hai dòng liên tiếp chứa một mã cơng khai: dịng 1 chứa từ W' và dòng 2 ghi số k. Tương ứng với mỗi cặp dịng đó, hãy giải mã và ghi vào file văn bản DECODE.OUT một dòng chứa từ W là từ đã giải mã ra được.

Hai yêu cầu trên phải được thực hiện độc lập trên hai file chương trình khác nhau.

Ràng buộc dữ liệu: Các từ được cho luôn khác rỗng, chỉ gồm các chữ cái in thường và có độ dài

khơng q 10000.

Ví dụ:

ENCODE.INP ENCODE.OUT DECODE.INP DECODE.OUT

091. BAO LỒI

Trên mặt phẳng với hệ toạ độ Decattes vng góc, cho n điểm khơng đồng thời thẳng hàng. Điểm

thứ i có toạ độ là (xi, yi).

(Số n và các toạ độ xi, yi đều là số nguyên: 3 ≤ n ≤ 1000; -300 ≤ xi ≤ 300;-200 ≤ yi ≤ 200).

Hãy tìm một đa giác lồi có diện tích nhỏ nhất mà miền đóng giới hạn bởi biên đa giác chứa tất cả

những điểm đã cho.

Dữ liệu: Vào từ file văn bản BOUND.INP

• Dịng 1: Chứa số n

• n dịng tiếp theo, dịng thứ i ghi hai số xi, yi

Kết quả: Ghi ra file văn bản BOUND.OUT

• Dịng 1: Ghi số m là số đỉnh của đa giác

• m dịng tiếp theo, mỗi dòng ghi hai số nguyên theo thứ tự là hoành độ và tung độ của một đỉnh

đa giác. Các đỉnh của đa giác khơng được phép có ba điểm thẳng hàng và chúng phải được liệt

kê theo đúng thứ tự lập thành đa giác.

Vẽ hình mơ tả kết quả tìm được trên màn hình đồ hoạ.

Các số trên một dòng của Input / Output file ghi cách nhau ít nhất một dấu cách

Ví dụ: BOUND.INP BOUND.OUT 10 0 -1 1 0 1 -3 2 4 3 -3 4 1 4 2 5 -1 6 -2 7 -1 6 1 -3 3 -3 6 -2 7 -1 2 4 0 -1

092. GIAI THỪA

Giai thừa của một số tự nhiên k, ký hiệu k! được định nghĩa quy nạp như sau: • 0! = 1

• k! = (k - 1)!.k (∀k ≥ 1)

Vấn đề đặt ra là cho trước hai số tự nhiên m, n. (1 ≤≤≤≤ m ≤≤≤≤ n≤≤≤≤ 106). Hãy tìm hai số tự nhiên a và b

để với mọi số tự nhiên k ( [a, b] thì k! có khơng ít hơn m chữ số và không nhiều hơn n chữ số.

Những số tự nhiên khác nằm ngồi đoạn [a, b] khơng có tính chất này.

Dữ liệu: Vào từ file văn bản FDIGIT.INP gồm một dòng chứa hai số m, n cách nhau một dấu cách. Kết quả: Ghi ra file văn bản FDIGIT.OUT gồm một dòng ghi hai số a, b cách nhau một dấu cách.

Trong trường hợp khơng có số k nào thoả mãn yêu cầu đề ra thì ghi hai giá trị bất kỳ a > b.

Ví dụ:

FDIGIT.INP FDIGIT.OUT FDIGIT.INP FDIGIT.OUT FDIGIT.INP FDIGIT.OUT

093. PHỦ SÓNG

Dự kiến xây dựng mạng lưới phát thanh, truyền hình ở một địa phương nọ có một đài phát và n

trạm tiếp sóng đánh số từ 1 tới n (n ≤ 1000). Trạm thứ i đã được xây dựng ở toạ độ (xi, yi). (Các toạ

độ là số thực, -10000 ≤ xi, yi ≤ 10000). Để đảm bảo tính trung thực của các nguồn tin, các trạm tiếp sóng chỉ có thể nhận tín hiệu trực tiếp từ đài phát. Và như vậy có nghĩa là để phát sóng đến tất cả các trạm thu, bán kính phủ sóng của đài phát phải đủ lớn để phủ hết các trạm tiếp sóng. (Giả sử

vùng phủ sóng là hình trịn có tâm là đài phát).

u cầu:

Hãy tìm vị trí đặt đài phát sao cho khoảng cách từ trạm xa nhất tới đài phát là ngắn nhất. Cho

biết bán kính phủ sóng trong phương án tìm được tối thiểu phải là bao nhiêu.

Dữ liệu: Vào từ file văn bản TELECOM.INP

• Dịng 1: Chứa số n

• n dịng tiếp theo, dòng thứ i chứa hai số xi, yi cách nhau ít nhất một dấu cách.

Kết quả: Ghi ra file văn bản TELECOM.OUT

Ghi ba số thực x, y, r. Ở đây (x, y) là toạ độ đặt đài phát và r là bán kính phủ sóng của đài phát (Đài phát có thể đặt trùng toạ độ với một trạm thu nào đó). Các số thực này phải được lấy tới 6 chữ số

sau dấu chấm thập phân và phải ghi cách nhau ít nhất một dấu cách hoặc dấu xuống dịng

Ví dụ TELECOM.INP TELECOM.OUT 8 0 0 200 300 200 0 200 200 0 200 100 300 300 100 100 0 121.428571 135.714286 182.107840

Một phần của tài liệu 150 bai tap toan tin (Trang 100 - 104)

Tải bản đầy đủ (PDF)

(165 trang)