Chủ Nhật, 12 tháng 3, 2017

Hướng dẫn giải đề thi học sinh giỏi lớp 9, môn Tin, tỉnh Đồng Nai năm 2014 - 2015

Xem đề tại đây

Bộ test tham khảo

BOCSOI Bốc sỏi

Giải

Duyệt từ trái qua phải, kiểm tra 2 kí tự kề nhau s[i] và s[i+1], nếu giống nhau thì kí tự sau phải xóa (ta chỉ cần tăng biến đếm, không cần thực hiện thao tác xóa

Code

for i:=1 to n do
    if s[i]=s[i+1] then inc(k);
CODE 20 TEST
Const fi=’bocsoi.inp’;fo=’bocsoi.out’;
var s:string;
    i,n,k:longint;
 begin
assign(input,fi);reset(input);
assign(output,fo);rewrite(output);
  readln(n);
  readln(s);
  for i:=1 to n do
   if s[i]=s[i+1] then inc(k);
   write(k);
close(input);close(output);
 end.

Bài 2. BANGDX Bảng đối xứng (6 điểm)

Giải

Vì bảng 5 x 5 nên ô chính giữa bảng là ô (3, 3)
Đọc bảng, tìm tọa độ ô (i, j) chứa số 1. Mỗi bước di chuyển ta có thể dịch ô (i, j) này sang một cột hoặc một hàng. Vậy để đưa ô (i, j) vào giữa ta tính tổng độ chênh lệch (hàng và cột) từ ô (i, j) đến ô (3, 3). Đó cũng chính là số thao tác phải di chuyển.
code
res:= abs(i-3) + abs(j - 3)

CODE

const fi='bangdx.inp';fo='bangdx.out';
var
a,b,c,m,n : longint;
procedure nhap; //đoc file input va tim o chua so 1
begin
for a := 1 to 5 do begin
  for b := 1 to 5 do begin
    read (c);
    if c = 1 then begin

end;
begin
assign(input,fi);reset(input);
assign(output,fo);rewrite(output);
for a := 1 to 5 do begin
  for b := 1 to 5 do begin
    read (c);
    if c = 1 then begin
      if a>3 then m := a-3 else m := 3-a;
      if b>3 then n := b-3 else n := 3-b;
    end;
  end;
  //readln();
end;

writeln (m+n);
close(input);close(output);
end.


Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.