1. Trang chủ
  2. » Địa lý

de chon HSG tin 12 nam 20112012

4 10 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 49,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

[r]

Trang 1

Sở Giáo Dục & Đào Tạo NGhệ an

TRờng THPT DTNT Quỳ HợP học sinh giỏi tỉnh lớp 12 THPT Kỳ thi chọn đội tuyển dự thi

năm học 2011 - 2012

Môn thi: tin học

Hình thức thi: Thực hành

Thời gian: 180 phút (không kể thời gian giao đề)

Bài 1: (7 điểm): Rút gọn xâu

Cho một xâu s chỉ gồm các chữ cái in thờng và độ dài tối đa 250 kí tự Em hãy viết chơng trình tạo ra xâu sg từ xâu s bằng cách xóa các kí tự liên tiếp giống nhau trong xâu s và chỉ

để lại một kí tự đại diện trong đoạn đó

Dữ liệu vào: Từ file văn bản xaugon.inp chứa xâu s chỉ gồm các chữ cái in thờng.

Kết quả ra: Ghi ra file văn bản xaaugon.out là xâu sg tìm đợc.

VD:

hhooocccssiinnnhhh hocsinh

Bài 2: ( 7 điểm): Gía trị lặp

Cho trớc dãy số n số nguyên a1, a2, …an không giảm và 2 chỉ số i,j (1ijn)

Hãy tìm số lần lặp lại nhiều nhất của các số trong dãy ai, …, aj

Dữ liệu: Vào từ file văn bản DAYSO.INP gồm:

- Dòng đầu tiên chứa số nguyên n

- Dòng thứ 2 chứa dãy số a1, a2, …an

- Dòng thứ 3 chứa 2 số i và j

(Các số trên một dòng cách nhau ít nhất 1 dấu cách trống)

Kết quả: Ghi ra file văn bản DAYSO.OUT có:

- Dòng đầu tiên chứa số lần lặp lại nhiều nhất của các số trong dãy a1, a2, …an

- Dòng thứ 2 chứa số lần lặp lại nhiều nhất của các số trong dãy ai, …, aj

Ví dụ:

10 -1 -1 1 1 1 1 3 10 10 10

5 10

4 3

Hạn chế 1n100, -10000 ai 10000 với i {1,…,n}

Trang 2

Bài 3: (6 điểm) Bang nhac

Tại một quầy băng đĩa ngời ta ghi các bài hát theo băng khi khách hàng chọn bài hát thứ

i trong băng thì phải quay băng để bỏ qua i-1 bài hát trớc đó Thời gian quay băng bỏ qua mọi bài hát trớc đó và thời gian phát bài hát đó là nh nhau Trung bình mỗi lợt khách đến các bài hát trong băng đợc họ lựa chọn là nh nhau Giả sử băng của chủ quán có dung l-ợng ghi vừa đủ N bài hát, với mỗi bài hát họ biết dung ll-ợng mỗi bài hát phát ra Hỏi chủ quán phải ghi các bài hát vào băng nh thế nào để cho tổng thời gian quay băng trong mọi lợt khách đến là nhanh nhất?

Dữ liệu vào: Từ file văn bản bannghac.inp nh sau:

- Dòng đầu tiên là số N(1<=N<=100) thể hiện số lợng bài hát

- Dòng thứ 2 là N số nguyên N, mỗi số là thời gian phát mỗi bài hát

Kết quả ra: Ghi vào file văn bản bangnhac.out nh sau:

- Dòng đầu tiên ghi tổng số thời gian phát băng đó nếu mỗi bài hát đợc phát một lần

- N dòng tiếp theo, mỗi dòng ghi 2 số nguyên là thứ tự bài hát và thời gian tìm và phát bài hát đó

VD:

Họ và tên thí sinh: Số báo danh:

Sở Giáo Dục & Đào Tạo NGhệ an

TRờng THPT DTNT Quỳ HợP học sinh giỏi tỉnh lớp 12 THPT Kỳ thi chọn đội tuyển dự thi

năm học 2010 - 2011

Đáp án và biểu điểm Chấm Môn: tin học

-Bài 1: (7 điểm):

bangnhac.inp bangnhac.out

3 2 6 10 1 5 1

2 3

1 6

3 12

4 22

Trang 3

program rutgon;

var i,n:integer; f1,f2:text; s,sg:string;

procedure xuli;

begin

assign(f1,'rg.inp');reset(f1);

assign(f2, 'rg.out');rewrite(f2);

while not eof(f1) do

begin

readln(f1,s);

sg:=' '; n:=length(s);

for i:=1 to n do if s[i]<>s[i+1] then sg:=sg+s[i];write(f2,sg);

end;

close(f1);close(f2);end;

begin xuli; end

Bµi 2: ( 7 ®iÓm)

Const fi='dayso.inp'; fo='dayso.out';

var f:text; n,id,jd,max1,max2:integer; a:array [1 100] of byte; procedure readfile;

var i:integer;

begin assign(f,fi); reset(f); readln(f,n); end;

procedure process;

var i,j,x,y,k:integer;

begin

fillchar(a,sizeof(a),0);

i:=1; max1:=0; max2:=0; read(f,x); k:=0;

if n=1 then begin k:=1; a[1]:=1;

end

else while i<n do

begin

j:=1; inc(i); read(f,y);

while (y=x) and (i<n) do begin inc(j); read(f,y); inc(i) end;

if i=n then

if y=x then inc(j) else begin a[k+2]:=1; end;

x:=y; inc(k); a[k]:=j;

if a[k+1]=1 then inc(k);

end;

read(f,id); read(f,jd);

for i:=1 to k do

if a[i]>max1 then max1:=a[i];

for i:=1 to k do

if id<>0 then if a[i]<id then

begin id:=id-a[i]; a[i]:=0; end

else begin a[i]:=a[i]-id+1; id:=0; end;

jd:=n-jd+1;

for i:=k downto 1 do

if jd<>0 then if a[i]<jd then

begin jd:=jd-a[i]; a[i]:=0; end

else

begin a[i]:=a[i]-jd+1; jd:=0; end;

for i:=1 to n do

if a[i]>max2 then max2:=a[i];

close(f); end;

procedure writeresult;

begin

assign(f,fo); rewrite(f);writeln(f,max1); writeln(f,max2);close(f);end; begin readfile; process;writeresult; end

Bµi 3: (6 ®iÓm)

const fi='bangnhac.inp'; fo='bangnhac.out';

var a,b:array[1 100] of integer; j,n,i,s,t:integer; f,g:text;

procedure nhap;

begin

assign(f,fi); reset(f); readln(f,n);

for i:=1 to n do

Trang 4

begin b[i]:=i; read(f,a[i]); end;

close(f);end;

procedure sx;

var tg:integer;

begin

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then

begin

tg:=a[i]; a[i]:=a[j]; a[j]:=tg;

tg:=b[i]; b[i]:=b[j]; b[j]:=tg;

end;

end;

procedure tong;

begin

s:=0; t:=0;

for i:=1 to n do begin s:=s+a[i]; t:=t+s; end;

end;

begin

nhap; sx; tong; s:=0;

assign(g,fo); rewrite(g); writeln(g,t);for i:=1 to n do begin s:=s+a[i]; writeln(g,b[i],' ',s); end; close(g); end

Ngày đăng: 05/03/2021, 14:10

w