1
0
Fork 0

Thêm đề TP 12 năm 2015-2016

This commit is contained in:
Nguyễn Gia Phong 2016-11-09 21:39:26 +07:00
parent 94f49ef110
commit 10de10a507
3 changed files with 175 additions and 0 deletions

83
12/TP-HN-2015/README.md Normal file
View File

@ -0,0 +1,83 @@
# KÌ THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ LỚP 12 NĂM HỌC 2015 - 2016
SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI
Môn thi: TIN HỌC
Ngày thi: 02/10/2015
Thời gian làm bài: 180 phút
## Tổng quan bài thi
| Bài | Tệp chương trình | Tệp dữ liệu vào | Tệp kết quả ra | Thời gian |
| :---: | :--------------: | :-------------: | :------------: | :-------: |
| 1 | BAI1.PAS | BAI1.INP | BAI1.OUT | 2 giây |
| 2 | BAI2.PAS | BAI2.INP | BAI2.OUT | 2 giây |
| 3 | BAI3.PAS | BAI3.INP | BAI3.OUT | 2 giây |
| 4 | BAI4.PAS | BAI4.INP | BAI4.OUT | 2 giây |
## Bài 1. Đếm nghiệm (6 điểm)
Cho phuơng trình: ax + by = c (x, y là ẩn; a, b, c là số nguyên dương nhỏ hơn
10<sup>5</sup>).
### Yêu cầu
Hãy đếm số nghiệm nguyên dương (x, y) của phương trình đã cho thoả mãn x, y
nguyên tố cùng nhau.
### Dữ liệu vào
Một dòng duy nhất chứa ba số a, b, c cách nhau bởi một dấu cách.
### Dữ liệu ra
Số nghiệm (x, y) thoả mãn yêu cầu trên.
### Ví dụ
| BAI1.INP | BAI2.OUT | Giải thích |
| -------- | -------- | ------------------------- |
| 1 2 10 | 2 | (x, y) ∈ {(4, 3), (8, 1)} |
## Bài 2. Điều hoà (5 điểm)
Một trường THPT có n lớp học được đánh số thứ tự từ 1 đến n cần trang bị điều
hoà. Mỗi lớp một điều hoà với công suất phụ thuộc vào diện tích của từng lớp.
Lớp thứ i cần lắp điều hoà với công suất không bé hơn a<sub>i</sub> (W). Nhà
trường đã tham khảo các cửa hàng điện lạnh và lập được bảng danh mục các loại
điều hoà kèm theo công suất và giá tương ứng.
### Yêu cầu
Cho trước yêu cầu điều hoà với công suất tương ứng nhỏ nhất của từng lớp học
cũng như danh mục các loại điều hoà. Hãy giúp nhà trường tính số tiền nhỏ nhất
cần bỏ ra để trang bị điều hoà cho tất cả n lớp học.
### Dữ liệu vào
* Dòng đầu là số tự nhiên n (1 ≤ n ≤ 50000) là số lượng lớp học,
* Dòng thứ hai chứ n số nguyên a<sub>i</sub> (1 ≤ a<sub>i</sub> ≤ 1000) là công
suất nhỏ nhất của điều hoà cần trang bị cho lớp i.
* Dòng thứ 3 chứa số nguyên m (1 ≤ m ≤ 50000) là số lượng các model điều hoà
khác nhau (mỗi model có số lượng điều hoà không hạn chế).
* m dòng tiếp theo, mỗi dòng chứa 2 số nguyên b<sub>j</sub>, c<sub>j</sub> (1 ≤
b<sub>j</sub>, c<sub>j</sub> ≤ 1000) lần lượt là công suất và giá tương ứng
của loại điều hoà model j.
### Kết quả ra
Tổng số tiền nhỏ nhất để mua đủ n điều hoà cho các lớp của trường.
### Ví dụ
| BAI2.INP | BAI2.OUT | Giải thích |
| -------- | -------- | -------------------------------------- |
| 3 | 13 | Lớp 1 mua điều hoà công suất 2, giá 3 |
| 1 2 3 | | Lớp 2 mua điều hoà công suất 2, giá 3 |
| 4 | | Lớp 3 mua điều hoà công suất 10, giá 7 |
| 1 10 | | |
| 1 5 | | |
| 10 7 | | |
| 2 3 | | |

38
12/TP-HN-2015/bai1.pas Normal file
View File

@ -0,0 +1,38 @@
var
a, b, c, x, v: smallint;
f: text;
function gcd(m, n: smallint): smallint;
var
p: smallint;
begin
while (n <> 0) do
begin
p := m mod n;
m := n;
n := p
end;
exit(m)
end;
begin
assign(f, 'BAI1.INP');
reset(f);
read(f, a, b, c);
close(f);
v := 0;
for x := 1 to c div a do
if ((c - a * x) mod b = 0) and
(gcd(x, (c - a * x) div b) = 1) then
inc(v);
assign(f, 'BAI1.OUT');
rewrite(f);
writeln(f, v);
close(f)
end.

54
12/TP-HN-2015/bai2.pas Normal file
View File

@ -0,0 +1,54 @@
var
n, m, i, b, c, j: word;
a: array of word;
f: text;
bc: array[1..1000, 1..1000] of boolean;
bestprice: array[1..1000] of word;
v: longint = 0;
begin
assign(f, 'BAI2.INP');
reset(f);
read(f, n);
setlength(a, n);
for i := 0 to n - 1 do
read(f, a[i]);
fillchar(bc, sizeof(bc), false);
readln(f, m);
for i := 1 to m do
begin
read(f, b, c);
bc[b][c] := true
end;
close(f);
for i := 1 to 1000 do
bc[i][1000] := true;
for i := 1 to 1000 do
if bc[1000][i] then
begin
bestprice[1000] := i;
break
end;
for i := 999 downto 1 do
begin
for j := 1 to bestprice[i + 1] do
if bc[i][j] then
break;
bestprice[i] := j
end;
for i := 0 to n - 1 do
inc(v, bestprice[a[i]]);
assign(f, 'BAI2.OUT');
rewrite(f);
writeln(f, v);
close(f)
end.