MÃ HOÁ BURROWS WHEELER

Một phần của tài liệu 150 Bài Toán Tin Lê Minh Hoàng Đại học Sư Phạm Hà Nội 2004 – 2006 potx (Trang 100 - 104)

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

BANANA ANANAB NANABA ANABAN NABANA ABANAN

Bước 2: Sắp xếp n hoá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 hoán vị vòng quanh sau khi đã sắp xếp (ởđây k là 4). Lấy của mỗi hoá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 cu 1:

Viết mt chương trình đọc file văn bn ENCODE.INP gm nhiu dòng, mi dòng cha mt t. Tương ng vi mi t W trên mt dòng, hãy mã hoá và ghi vào file văn bn ENCODE.OUT hai dòng là mã công khai ca tđó: dòng 1 ghi t W', dòng 2 ghi s k.

Yêu cu 2:

Viết mt chương trình khác đọc file văn bn DECODE.INP gm nhiu cp dòng: C hai dòng liên tiếp cha mt mã công khai: dòng 1 cha t W' và dòng 2 ghi s k. Tương ng vi mi cp dòng đó, hãy gii mã và ghi vào file văn bn DECODE.OUT mt dòng cha t W là tđã gii 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 quá 10000.

Ví dụ:

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

091. BAO LI

Trên mặt phẳng với hệ toạ độ Decattes vuông 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 mt dòng ca Input / Output file ghi cách nhau ít nht mt du 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 THA

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)

Vn đềđặ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

để vi mi s t nhiên k ( [a, b] thì k! có không ít hơn m ch s và không nhiu hơn n ch s. Nhng s t nhiên khác nm ngoài đon [a, b] không có tính cht 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).

Yêu cu:

Hãy tìm v trí đặt đài phát sao cho khong cách t trm xa nht ti đài phát là ngn nht. Cho biết bán kính ph sóng trong phương án tìm được ti thiu phi 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 Bài Toán Tin Lê Minh Hoàng Đại học Sư Phạm Hà Nội 2004 – 2006 potx (Trang 100 - 104)