1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề và đáp án môn Tin tỉnh Thanh Hoá kỳ thi chọn đội tuyển HSG thi Quốc Gia

10 82 3

Đ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 10
Dung lượng 83,5 KB
File đính kèm Test_Ngay2.rar (1 MB)

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

Nội dung

Đề thi, hướng dẫn làm các bài trong đề thi và bộ test dùng để chấm điểm. Chỉ cần tải về làm rồi dùng chương trình Themis để chấm bài. Nếu không làm được thì đọc hướng dẫn làm bài và đọc chương trình tôi đã viết. Cảm ơn

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO

THANH HOÁ KỲ THI CHỌN ĐỘI TUYỂN DỰ THI HSGQG LỚP 12 THPT NĂM HỌC 2013 – 2014

MÔN THI: TIN HỌC

Ngày thi: 09 – 10 – 2013

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

(Đề gồm 3 câu, 2 trang)

Tổng quan bài thi :

Câu Tên bài Tên file nguồn Tên file input Tên file output Điểm

Hãy lập trình giải các bài toán sau:

Câu 1 Ổ GÀ

Sau một thời gian dài, con đường XYZ đã có dấu hiệu xuống cấp Nhận được nhiều lời phàn nàn của người tham gia giao thông, nhà quản lý tiến hành kiểm tra chất lượng con đường trước khi đưa ra quyết định về việc xây đường mới.

Con đường có độ dài n mét và được chia thành n phần bằng nhau liên tiếp (mỗi phần dài 1 mét), đánh số từ 1 đến n Người ta đã tính toán độ cao trung bình của mỗi phần

Cụ thể, phần thứ i sẽ có độ cao trung bình là Ai

Kích thước của ổ gà lớn nhất là một trong những yếu tố quan trọng ảnh hưởng đến chất lượng của con đường Một ổ gà là một đoạn liên tiếp các phần đường từ u đến v thỏa mãn các tính chất sau:

 v≥2+u (đoạn đường dài ít nhất 3 mét).

 Tồn tại m (u<m<v) sao cho Ai>Ai+1 với mọi u≤i<m và Ai<Ai+1 với mọi m≤i<v

 Giá trị v-u+1 được gọi là kích thước của ổ gà.

Ví dụ: Trên con đường có độ dài 5 mét với độ cao trung bình của mỗi phần lần lượt

là (1, 3, 2, 4, 5), đoạn đường từ phần đường thứ 2 đến phần đường thứ 5 là ổ gà lớn nhất có

kích thước bằng 4.

Yêu cầu: Tìm kích thước của ổ gà lớn nhất.

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

- Dòng đầu: Ghi số nguyên n (1 ≤ n ≤ 105).

- n dòng tiếp theo: Mỗi dòng ghi một số nguyên Ai (0 ≤ Ai ≤ 109).

ĐỀ CHÍNH THỨC

SBD: ………

Trang 2

Kết quả: Ghi ra file văn bản OGA.OUT một số nguyên duy nhất là kích thước lớn nhất của

một ổ gà trên đường Nếu không tìm được ổ gà nào, ghi ra 0.

Ví dụ :

5 1 3 2 4 5

4

Câu 2 BIẾN ĐỔI

Cho m máy biến đổi số được đánh số từ 1 đến m và một số nguyên dương n Hoạt động của máy thứ i được xác định bởi cặp số nguyên dương (ai,bi) (1≤ ai,bi≤ n) Máy nhận đầu vào là số nguyên dương ai và trả lại ở đầu ra số nguyên dương bi.

Ta nói một số nguyên dương x có thể biến đổi thành số nguyên dương y nếu

x = y hoặc tồn tại một dãy hữu hạn các số nguyên dương x = p1, p2, , pk = y sao cho với hai phần tử liên tiếp pi, pi+1 bất kì trong dãy, luôn tìm được một trong số các máy đã cho để biến đổi pi thành pi+1.

Yêu cầu: Cho trước số nguyên dương t (t ≤ n), hãy bổ sung thêm một số ít nhất các máy

biến đổi số để bất kỳ số nguyên dương nào từ 1 đến n sđều có thể biến đổi thành t.

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

- Dòng đầu tiên chứa 3 số nguyên n, m, t (1≤n,m,t≤104).

- m dòng tiếp theo, mỗi dòng chứa một cặp số tương ứng với một máy biến đổi số (Các số trên các dòng được ghi cách nhau bởi một dấu cách)

Kết quả: Ghi ra file văn bản BIENDOI.OUT một số duy nhất là số máy biến đổi cần bổ sung.

Ví dụ:

BIENDOI.INP BIENDOI.OUT

6 4 5

1 3

2 3

4 5

6 5

1

Câu 3 CHỖ NGỒI

Trang 3

Để chuẩn bị cho Word Cup, Việt Nam đã xây dựng một sân vận động lớn nhất thế giới Chỗ ngồi của khán giả được chia thành nhiều sectors giống nhau, mỗi sectors gồm nhiều hàng ghế, mỗi hàng ghế có N ghế đánh số từ 1 đến N từ trái qua phải và khán giả có thể đi vào chỗ ngồi của mình từ cả 2 phía của hàng ghế Hướng dẫn viên có nhiệm vụ chỉ cho khán giả vào chỗ ngồi từ đầu này hay đầu kia để họ không phải đi qua người đã ngồi trên hàng đó Mỗi người sẽ đi vào chỗ ngồi của mình sau khi người đến trước (nếu có) đã ngồi vào chỗ của họ

Tất cả các ghế của hàng đã được bán hết, nhưng không thể biết được khán giả đã đến sân theo trình tự nào Mỗi cách bố trí N người vào hàng N ghế được xem là một tình huống tốt.

Yêu cầu: Cho số nguyên dương N là số lượng ghế ngồi của hàng, hãy xác định số tình

huống tốt có thể và đưa ra kết quả theo modul (109+7).

Dữ liệu: Vào từ file CHONGOI.INP chứa số nguyên dương N (N≤1018).

Kết quả: Đưa ra file văn bản CHONGOI.OUT là kết quả tìm được.

Lưu ý: Người đầu tiên có thể vào chỗ ngồi của mình theo cả 2 phía, nhưng ta chỉ tính 2 cách đó là 1.

Ví dụ:

CHONGOI.INP CHONGOI.OUT

Giải thích: N=3 có 4 cách là:

Cách 1: Khán giả đầu ngồi ghế 1, hai khán giả còn lại đi vào ghế ngồi từ bên phải

Cách 2: Khán giả đầu ngồi ghế 3, hai khán giả còn lại đi vào ghế ngồi từ bên trái

Cách 3: Khán giả đầu ngồi ghế 2, khán giả hai đi vào ghế ngồi từ bên trái, khán giả ba đi vào ghế ngồi từ bên phải.

Cách 4: Khán giả đầu ngồi ghế 2, khán giả hai đi vào ghế ngồi từ bên phải, khán giả ba đi vào ghế ngồi từ bên trái.

Hết

Trang 4

tfi = 'oga.inp';

tfo = 'oga.out';

Nmax = 100001;

type

arr1 = array[0 Nmax] of longint ;

var

fi,fo : text;

n,m,res : longint;

a,f,g : arr1 ;

procedure Nhap;

var

i,j :longint;

begin

read(fi,n) ;

for i := 1 to n do read(fi,a[i]) ;

end;

procedure init;

var

i,j,k: longint;

begin

f[1] := 1;

for i := 2 to n do if a[i] < a[i-1] then

f[i] := f[i-1] + 1 else f[i] := 1;

g[n] := 1;

for i := n -1 downto 1 do if a[i] < a[i+1] then

g[i] := g[i+1] + 1 else g[i] := 1;

end;

procedure xuly;

var

i,j,k: longint;

begin

res:= 0;

for i := 2 to n - 1 do

if (f[i] > 1) and (g[i] > 1) and (res < f[i] + g[i] - 1)

then res := f[i] + g[i] - 1 ;

end ;

procedure inkq;

begin

write(fo,res);

end;

begin

assign(fi,tfi);reset(fi);

assign(fo,tfo);rewrite(fo);

Nhap;

init;

xuly;

inkq;

close(fi);

close(fo) ;

end

Trang 5

uses math;

const fi='biendoi.inp';

fo='biendoi.out';

nmax = 10100;

var

n,m,top,dem,sl,Start,res:longint;

ke,head,next,st,low,num,lab,degout:array[0 nmax] of longint;

free:array[0 nmax] of boolean;

procedure DFS(u:longint);

var i,v,x:longint;

begin

inc(top);st[top]:=u;

inc(dem);num[u]:=dem;low[u]:=num[u];

i:=head[u];

while i<>0 do

begin

v:=ke[i];

if free[v] then

begin

if num[v]=0 then

begin

dFS(v);

low[u]:=min(low[u],low[v]);

end

else low[u]:=min(low[u],num[v]);

end;

i:=next[i];

end;

if low[u]=num[u] then

begin

inc(sl);

repeat

x:=st[top];dec(top);

free[x]:=false;lab[x]:=sl;

until x=u;

end;

end;

procedure progress;

var i,j,u,v:longint;

begin

read(n,m,Start);

for i:=1 to m do

begin

read(u,v);

next[i]:=head[u];head[u]:=i;ke[i]:=v;

end;

for i:=1 to n do free[i]:=true;

for i:=1 to n do if free[i] then DFS(i);

for u:=1 to n do

begin

i:=head[u];

while i<>0 do

begin

v:=ke[i];

if lab[u]<>lab[v] then

inc(degout[lab[u]]);

i:=next[i];

end;

end;

for i:=1 to sl do if (lab[Start]<>i)and(degout[i]=0) then inc(res); writeln(res);

end;

Trang 6

assign(input,fi);reset(input);

assign(output,fo);rewrite(output);

progress;

close(input);

close(output);

END

Trang 7

const fi='chongoi.INP';

fo='chongoi.OUT';

maxn=1000000007;

var n:int64;

procedure docfile;

begin

assign(input,fi);

reset(input);

readln(n);

assign(output,fo);

rewrite(output);

end;

procedure dongfile;

begin

close(input); close(output);

end;

function power(n:int64):int64;

var a:int64;

begin

if n=0 then exit(1);

a:=power(n div 2);

a:=(a*a) mod maxn;

if n mod 2=1 then a:=(2*a) mod maxn;

exit(a);

end;

BEGIN

docfile;

writeln(power(n-1));

dongfile;

END

Trang 10

,,,

Ngày đăng: 17/10/2020, 10:41

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w