diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-11-01 11:31:39 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-11-01 11:31:39 +0700 |
commit | dfaf87f8696bb31bc1a29b2d4a67f17ad1a2f593 (patch) | |
tree | b2cced929ddfa488f8dd9d871aed35266fe43f47 | |
parent | 71a6e456b59171a681bccff7eeba9db7367bca37 (diff) | |
download | cp-dfaf87f8696bb31bc1a29b2d4a67f17ad1a2f593.tar.gz |
Thêm đề HSG lớp 9 TP Huế
-rw-r--r-- | 9/TP-Huế-2014/README.md | 48 | ||||
-rw-r--r-- | 9/TP-Huế-2014/bai1.pas | 15 | ||||
-rw-r--r-- | 9/TP-Huế-2014/bai2.pas | 35 | ||||
-rw-r--r-- | 9/TP-Huế-2014/bai3.pas | 34 | ||||
-rw-r--r-- | THT/B/QG-2016/trigrid.c | 30 |
5 files changed, 162 insertions, 0 deletions
diff --git a/9/TP-Huế-2014/README.md b/9/TP-Huế-2014/README.md new file mode 100644 index 0000000..f632ce1 --- /dev/null +++ b/9/TP-Huế-2014/README.md @@ -0,0 +1,48 @@ +# THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ + +UBND THÀNH PHỐ HUẾ +PHÒNG GIÁO DỤC VÀ ĐÀO TẠO +MÔN TIN HỌC - NĂM HỌC: 2013-2014 +Thời gian: 120 phút (Không kể thời gian giao đề) + +## Bài 1 (3 điểm) + +Hai số tự nhiên `n`, `m` được gọi là nguyên tố tương đương nếu chúng có chung +các ước số nguyên tố. Hãy viết chương trình nhập vào hai số `n`, `m` và kiểm +tra chúng có là nguyên tố tương đương với nhau hay không. + +**Ví dụ:** số 75 và số 15 là nguyên tố tương đương vì chúng có cùng các ước số +nguyên tố là 3 và 5. + +## Bài 2 (3 điểm) + +Cho hệ phương trình bậc nhất hai ẩn: + + ax + by = c + a'x + b'y = c' + +Hãy viết chương trình giải hệ phương trình trên, đồng thời xác định vị trí +tương đối của hai đường thẳng `d: ax + by = c` và `d': a'x + b'y =c'` đã tạo +nên hệ phương trình. + +## Bài 3 (4 điểm) + +Cho hai xâu `X`, `Y` chứa các kí tự số từ 0 đến 9 và không dài quá 250 kí tự. + +Hãy viết chương trình tạo ra xâu `ST` thoả mãn các điều kiện sau: + +* Gồm các kí tự số vừa có mặt ở xâu `X`, vừa có mặt ở xâu `Y` +* Các kí tự số trong xâu `ST` chỉ xuất hiện duy nhất một lần +* Giá trị xâu `ST` nhận được là một số đạt giá trị lớn nhất + +Dữ liệu vào cho bởi file `INPUT.INP` chứa giá trị xâu `X` và xâu `Y`, mỗi xâu +nằm trên một dòng. + +Dữ liệu ra chứa ở file `OUTPUT.OUT` là số lớn nhất nhận được. + +**Ví dụ:** + +INPUT.INP | OUTPUT.OUT +--------- | ---------- +19012304 | 43210 +034012 | diff --git a/9/TP-Huế-2014/bai1.pas b/9/TP-Huế-2014/bai1.pas new file mode 100644 index 0000000..7bd0d92 --- /dev/null +++ b/9/TP-Huế-2014/bai1.pas @@ -0,0 +1,15 @@ +var + n, m, p: qword; + +begin + read(n, m); + + while m <> 0 do + begin + p := n mod m; + n := m; + m := p + end; + + writeln(n <> 1) +end. diff --git a/9/TP-Huế-2014/bai2.pas b/9/TP-Huế-2014/bai2.pas new file mode 100644 index 0000000..172137d --- /dev/null +++ b/9/TP-Huế-2014/bai2.pas @@ -0,0 +1,35 @@ +var + a, b, c, e, p, k, tmp: real; + +function det(a, b, c, d: real): real; + begin + exit(a * d - b * c) + end; + +begin + read(a, b, c, e, p, k); + + tmp := det(a, b, e, p); + + if tmp <> 0 then + begin + writeln('x = ', (det(c, b, k, p) / tmp):0:6); + writeln('y = ', (det(a, c, e, k) / tmp):0:6); + writeln('Hai đường thẳng cắt nhau.') + end + else if c <> k then + begin + writeln('Phương trình vô nghiệm.'); + writeln('Hai đường thẳng song song.') + end + else + begin + if a = 0 then + writeln('y = ', (c / b):0:6) + else if b = 0 then + writeln('x = ', (c / a):0:6) + else + writeln('x = ', (-b / a):0:6, 'y + ', (c / a):0:6); + writeln('Hai đường thẳng trùng nhau.') + end; +end. diff --git a/9/TP-Huế-2014/bai3.pas b/9/TP-Huế-2014/bai3.pas new file mode 100644 index 0000000..91fc05f --- /dev/null +++ b/9/TP-Huế-2014/bai3.pas @@ -0,0 +1,34 @@ +var + x, y: string; + f: text; + a: array[0 .. 9] of shortint; + b: shortint; + c: char; + +begin + assign(f, 'INPUT.INP'); + reset(f); + readln(f, x); + readln(f, y); + close(f); + + fillchar(a, 0, sizeof(a)); + + for c in x do + a[ord(c) - 48] := 1; + + for c in y do + begin + b := ord(c) - 48; + if a[b] = 1 then + a[b] := 2 + end; + + assign(f, 'OUTPUT.OUT'); + rewrite(f); + for b := 9 downto 0 do + if a[b] = 2 then + write(f, b); + writeln(f); + close(f) +end. diff --git a/THT/B/QG-2016/trigrid.c b/THT/B/QG-2016/trigrid.c new file mode 100644 index 0000000..5b8606c --- /dev/null +++ b/THT/B/QG-2016/trigrid.c @@ -0,0 +1,30 @@ +#include <stdio.h> + + +const long long a[] = {4, 3, 5, 6, 111, 222, 3333, 4444, 55555, 666666, 7777777, + 88888888, 999999999, 123456789123456789, + 1000000000000000000}; + +long long quadratic(long long x, char a, char b, char c) +{ + return a * x * x + b * x + c; +} + +int main() +{ + char i; + long long k, q; + FILE *f; + + f = fopen("TRIGRID.TXT", "w"); + + for (i = 0; i < 15; i++) { + q = a[i] % 2016; + k = a[i] / 2016 % 2016 * 252 * quadratic(q, 6, 10, 2); + fprintf(f, "%d\n", (k + quadratic(q, 2, 5, 2) * q / 8) % 2016); + } + + fclose(f); + + return 0; +} |