De HSG Vong 2 20012002

3 12 0
De HSG Vong 2 20012002

Đang tải... (xem toàn văn)

Thông tin tài liệu

Cho phép thực hiện các phép biến đổi sau đây đối với xâu ký tự :1. Thay thế một ký tự nào đó bởi một ký tự khác.[r]

(1)

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI THÀNH PHỐ THÀNH PHỐ ĐÀ NẴNG LỚP 12 THPT NĂM HỌC 2001-2002

- -Mơn : Tin học (Vịng 2)

Thời gian : 180 phút (không kể thời gian giao đề) ĐỀ CHÍNH THỨC:

Bài 5: Khoảng cách hai xâu

Cho hai xâu ký tự S1 vàìS2 xâu có độ dài khơng q 255 ký tự Cho phép thực phép biến đổi sau xâu ký tự :

1 Thay ký tự ký tự khác Đổi chỗ hai ký tự liền

3 Chèn vào ký tự Xóa bớt ký tự

Ta gọi khoảng cách hai xâu S1 S2 số nhỏ phép biến đổi nêu cần áp dụng xâu S1 để biến thành xâu S2

Yêu cầu : Tính khoảng cách hai xâu S1 S2 cho trước

Ví dụ : giả sử S1 = ‘Barney’ S2 =’brawny’ Khoảng cách hai xâu S1 S2 Dãy phép biến đổi cần thực :

-Thay kí tự S1 : ‘B’ ‘b’ ;

-Đổi chỗ hai ký tự thứ hai (‘a’)và thứ ba (‘r’) ; -Chèn ký tự ‘w’ vào sau ký tự thứ ba;

-Xóa ký tự thứ năm

Dãy phép biến đổi mô tả sau :

‘Barney’  ‘barney’  ‘braney’  ‘brawney’  ‘brawny’

Dữ liệu : vào từ file văn BIENDOI.INP có cấu trúc sau : Dòng chứa xâu S1

Dòng thứ hai chứa xâu S2

Kết : Ghi file văn BIENDOI.OUT

Dòng ghi số lượng phép biến đổi cần sử dụng (gọi k)

Mỗi dòng thứ i số k dịng mơ tả phép biến đổi sử dụng lần thứ i(i=1,2, ,k) ; ghi số phép biến đổi sử dụng, tiếp đến :

+ Nếu phép biến đổi cần vị trí ký tự cần thay xâu biến đổi ký tự thay ;

+ Nếu phép biến đổi cần vị trí (xếp theo thứ tự tăng dần) hai ký tự cần đổi chỗ;

+ Nếu phép biến đổi cần vị trí ký tự xâu xét mà sau cần chèn ký tự ký tự cần chèn ;

+ Nếu phép biến đổi cần vị trí ký tự cần xóa câu xét

(2)

BIENDOI.INP BIENDOI.OUT Barney

Brawny

4 b 3 w

Bài 6: Dấu liệu ảnh

Giả sử ta có liệu D ảnh F Hãy tìm cách dấu liệu D vào ảnh F Cho biết :

-Ảnh F bảng có kích thước n x m điểm, điểm đen kí hiệu 0, điểm trắng kí hiệu

-Dữ liệu D xâu bít có chiều dài L gồm bít 0,1

1)Phương pháp dấu liệu : Bít D dấu vào k điểm ảnh F (k khóa, k lẻ), bít thứ hai D dấu vào k điểm ảnh F,

Giả sử cần dấu bít b bít thứ i (1<=i<=L) xâu D vào ảnh F, ta dùng phương pháp sau :

Bước 1: Đọc liên tiếp k điểm ảnh ảnh F gọi f Bước 2: Ký hiệu sum(f) tổng số bít có giá trị có f Bước 3:Dấu liệu bít b f cách sửa bít f :

Cơ sở để sửa bít f so sánh tính chẵn lẻ bít b với sum(f):

+Nếu b sum(f) chẵn (có phần dư chia cho 0) lẻ (có phần dư chia cho 1) khơng sửa bít f

+Nếu b sum(f) khơng chẵn khơng lẻ ta sửa bít f để sum(f) b có chẵn lẻ Việc sửa tiến hành sau:

Sửa bít cuối đoạn màu lớn f Ví dụ :

- Cho bít b= khóa k= :

a) Giả sử f=110100010 => sum(f) =

b sum (f) chẵn Do khơng sửa bít (xem dấu b vào f)

b) Giả sử f=110111011 => sum(f) =

b sum (f) không chẵn lẻ Do đó, người ta sửa bít f:

Sửa bít cuối đoạn màu lớn f 111 thành 110 Khi : f=110110011(đã dấu b vào f)

2) Giải mã : Cho biết khóa k, độ dài xâu D tên file cần giải mã Căn vào tính chất sum(f) cho biết kết xâu D

Dữ liệu vào: từ file văn ANHF.INP có cấu trúc sau:  Dịng ghi hai số n,m

 Dòng i+1 (1<=i<=n) ghi m điểm ảnh F[i,1], F[i,2], F[i,m]

(3)

Kí hiệu : F[i,m] F[i+1,1] điểm ảnh liên tiếp

Kết : Lập chương trình menu gồm mục :

1/ Mã hóa : Nhập vào khóa k tên file cần mã hóa Kết ghi file văn bản ANHF1.OUT

2/ Giải mã : Nhập vào khóa k, độ dài xâu D tên file cần giải mã Kết quả đưa hình xâu bít D giải mã

Ví Dụ:1 Cần dấu xâu bít D = 011001 vào ảnh F với khóa k = :

ANHF.INP => ANHF1.OUT

9

1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1

2 Nhập k=9, L=6 file cần giải mã ANHF1.OUT kết xâu D hình là: 011001

Ngày đăng: 13/04/2021, 17:51

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan