Thẻ: De thi học sinh giỏi Tin học THCS có đáp AN

Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải Chi Tiết)

Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải Chi Tiết – Độ phức tạp) cập nhật mới nhất năm 2026 – 2027

Tải đề Thi Đề thi HSG Tin học THCS Python Cấp Tỉnh file PDF:

Tải bằng google driver

Các đề ôn thi để chuẩn bị thi Cấp Xã thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

    1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
    4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
    5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
    6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
    7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
    8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
    9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
    10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
    11. Đề thi hsg tin 11 python có đáp án hay nhất 2024
    12. 12 đề và đáp án thi HSG tin Python có sắp xếp
    13. Đề 13 thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024.
    14. 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất !
    15. 15 Đề thi học sinh giỏi Tin học lớp 9 cấp huyện hay nhất 2024 – 2025
    16. 16 Đề bài tập Python có lời giải PDF thi HSG cấp huyện mới nhất
    17. 17 đề thi tin học trẻ có Đáp Án python THCS cấp huyện PDF
    18. 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025
    19. 19 thi HSG Tin 9 C ++ hoặc Python có đáp án
    20. 100 đề và đáp án thi HSG tin Python cấp huyện 2025

Thiết kế dạng hình:

75 Đề thi HSG Tin học THCS Python cấp Tỉnh có Đáp Án 2026-2027

Xoá term: 100 đề và đáp an thi HSG Tin Python 100 đề và đáp an thi HSG Tin Python De thi học sinh giỏi Tin học THCS có đáp AN Tài liệu bồi dưỡng HSG Tin học THCS Python

Thiết kế dạng chữ :

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

TỔNG quan các BÀi thi

Thứ tự 

Tên bài

File chương trìnhFile dữ liệu vàoFile kết quả
Bài 1Tương đồngSAME.*SAME.INPSAME.OUT
Bài 2Tách xâuSTRING.*STRING.INPSTRING.OUT
Bài 3May mắnLUCKY.*LUCKY.INPLUCKY.OUT
Bài 4Tam giácTRIANGLE.*TRIANGLE.INPTRIANGLE.OUT
Bài 5Chở hàngGOOD.*GOOD.INPGOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng   Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INPsame.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INPSTRING.OUT
m2aC0ma2T3TamCam

0223

 

 

Bài 3: (4 điểm) May mắn Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

 

 

Trường hợp 1                                                  Trường hợp 2                                                  Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INPLUCKY.OUT
3 43
1 4 3 1
1 1 5 2
2 1 2 1

 

 

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INPTRIANGLE.OUTGiải thích
53Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 36.00Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
44Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 21.73Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

30Không ghép được tam giác nào
1 2 3-1

 

 

Bài 5: (4 điểm) Hàng hóa Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INPGOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

…………………………………………………… HẾT…………………………………………………….

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

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

 

 

Đáp án bài 1: Tương đồng – SAME.*

1.1 Đáp án bài 1:

import sys
from collections import Counter
sys.stdin = open("SAME.INP", "r")
sys.stdout = open("SAME.OUT", "w")
n = int(sys.stdin.readline().strip())  # Đọc số lượng phần tử (không cần dùng)
a = list(map(int, sys.stdin.readline().split()))  # Đọc danh sách số
tanso = Counter(a)  # Đếm tần số xuất hiện của từng số
tansolonnhat = max(tanso.values())  # Tìm tần số lớn nhất
print(tansolonnhat)  # Ghi kết quả ra file

1.2 CÁCH GIẢI 1:

1️⃣  Đọc dữ liệu từ file:

  • Vì bạn muốn dùng sys.stdin, ta mở file bằng sys.stdin = open(“SAME.INP”, “r”).
  • Đọc số n (số lượng phần tử) nhưng không cần dùng đến.
  • Đọc danh sách số nguyên từ file.

2️⃣ Đếm tần số xuất hiện của từng số:

  • Dùng collections.Counter để đếm số lần xuất hiện của mỗi phần tử.

3️⃣ Tìm tần số lớn nhất:

  • Duyệt qua các giá trị trong Counter và lấy giá trị lớn nhất bằng max(freq.values()).

4️⃣ Ghi kết quả ra file:

  • In kết quả ra sys.stdout, kết quả sẽ được lưu vào “SAME.OUT”.

⏳ Độ phức tạp

  • Đọc dữ liệu: O(n)
  • Đếm tần số: O(n)
  • Tìm max: O(n)
  • Tổng: O(n) (rất tối ưu ✅).

👉 Tóm lại, ta chỉ cần duyệt danh sách 1 lần để đếm tần số và 1 lần để tìm giá trị lớn nhất. 🚀

 

Đáp án bài 2: Tách xâu – STRING.*

2.1 Đáp án bài 2:

import sys
sys.stdin = open("STRING.INP", "r")
sys.stdout = open("STRING.OUT", "w")
s = sys.stdin.readline().strip()
chu = []
so = []
# Phân loại ký tự
for i in s:
    if i.isalpha():
        chu.append(i)
    elif i.isdigit():
        so.append(i)
# Xử lý yêu cầu bài toán
chu.reverse()  # Đảo ngược thứ tự chữ cái
so.sort()  # Sắp xếp các chữ số theo thứ tự tăng dần
# Ghi kết quả ra file
print("".join(chu))
print("".join(so))

2.2 CÁCH GIẢI:

Phân tích bài toán

Bài toán yêu cầu:

  1. Tách các chữ cái trong xâu và đảo ngược thứ tự xuất hiện của chúng.
  2. Tách các chữ số trong xâu và sắp xếp chúng theo thứ tự tăng dần.

Cách giải

  • Duyệt qua từng ký tự của xâu:
    • Nếu là chữ cái, thêm vào danh sách chu.
    • Nếu là chữ số, thêm vào danh sách so.
  • Đảo ngược danh sách letters.
  • Sắp xếp danh sách digits theo thứ tự tăng dần.
  • Ghi kết quả ra file.

Độ phức tạp

  • Duyệt chuỗi O(n)
  • Đảo ngược danh sách chữ O(n)
  • Sắp xếp danh sách số O(k log k) (với k là số lượng chữ số, k ≤ n)
  • Tổng thể: O(n log n) ~ O(n) trong thực tế.

 

Đáp án Bài 3:  May mắn – LUCKY.*

3.1 Đáp án :

 

import sys
sys.stdin = open("LUCKY.INP", "r")
sys.stdout = open("LUCKY.OUT", "w")

def tinh_trung_binh_lan_can(ma_tran, i, j, m, n):
    lan_can = []
    huong = [(-1, 0), (1, 0), (0, -1), (0, 1)]  # Trái, phải, trên, dưới

    for dx, dy in huong:
        ni, nj = i + dx, j + dy
        if 0 <= ni < m and 0 <= nj < n:
            lan_can.append(ma_tran[ni][nj])

    return sum(lan_can) / len(lan_can) if lan_can else 0
m, n = map(int, sys.stdin.readline().split())
ma_tran = [list(map(int, sys.stdin.readline().split())) for _ in range(m)]

so_nguoi_may_man = 0

# Kiểm tra từng ô trong ma trận
for i in range(m):
    for j in range(n):
        trung_binh_lan_can = tinh_trung_binh_lan_can(ma_tran, i, j, m, n)
        if ma_tran[i][j] > trung_binh_lan_can:
            so_nguoi_may_man += 1

print(so_nguoi_may_man)

 

3.2 CÁCH GIẢI

Cách giải bài toán:

  1. Đọc dữ liệu đầu vào:
    • Đọc kích thước ma trận m x n.
    • Đọc các giá trị của ma trận từ file.
  2. Tính toán số người may mắn:
    • Với mỗi vị trí (i, j), tính trung bình cộng của các ô xung quanh (trái, phải, trên, dưới).
    • Nếu giá trị ở (i, j) lớn hơn trung bình đó, thì người ở vị trí đó là người may mắn.
  3. Xuất kết quả:
    • Ghi số lượng người may mắn ra file kết quả.

 

Đáp án bài 4:  Tam giác -TRIANGLE.*

4.1 Đáp án:

 

import sys, math

sys.stdin = open("TRIANGLE.INP", "r")
sys.stdout = open("TRIANGLE.OUT", "w")

# Đọc dữ liệu
n = int(sys.stdin.readline().strip())
que = list(map(int, sys.stdin.readline().split()))

dem_tam_giac = 0
dien_tich_lon_nhat = 0.0

# Duyệt mọi bộ 3 que khác nhau
for i in range(n - 2):
    for j in range(i + 1, n - 1):
        for k in range(j + 1, n):
            a = que[i]
            b = que[j]
            c = que[k]

            # Sắp xếp 3 cạnh
            x, y, z = sorted([a, b, c])

            # Kiểm tra điều kiện tam giác
            if x + y > z:
                dem_tam_giac += 1

                # Tính diện tích theo công thức Heron
                p = (x + y + z) / 2
                dien_tich = math.sqrt(p * (p - x) * (p - y) * (p - z))

                if dien_tich > dien_tich_lon_nhat:
                    dien_tich_lon_nhat = dien_tich

# Xuất kết quả
print(dem_tam_giac)
if dem_tam_giac == 0:
    print(-1)
else:
    print(f"{dien_tich_lon_nhat:.2f}")

✨ Ý tưởng bài toán

Alice có n que tính, chọn 3 que bất kỳ để ghép thành tam giác.

1️⃣ Điều kiện tạo thành tam giác

Với 3 cạnh a, b, c (đã sắp tăng dần):

a + b > c

2️⃣ Hai tam giác khác nhau

→ Chỉ cần khác chỉ số que tính, dù độ dài bằng nhau vẫn tính là khác.

3️⃣ Diện tích tam giác (Công thức Heron)

p = (a + b + c) / 2
S = sqrt(p * (p - a) * (p - b) * (p - c))

4️⃣ Yêu cầu

  • Đếm tổng số tam giác

  • Tìm diện tích lớn nhất

  • Nếu không có tam giác → in -1


🧠 Độ phức tạp

  • n < 100

  • Duyệt 3 vòng lặp:
    👉 O(n³) ≈ 100³ = 1.000.000 → chạy thoải mái

📌 Ví dụ minh họa

Input

5
1 4 5 2 3

Output

3
6.00

Input

3
1 2 3

Output

0
-1

🎯 Nhận xét chuẩn bài thi

✔ Đúng yêu cầu đề
✔ Không trùng tam giác
✔ Xử lý số thực chính xác
✔ In đúng định dạng
✔ Code rõ ràng – dễ chấm điểm

Đáp án bài 5: Hàng hóa – GOOD.*

5.1 Đáp án bài Hàng Hóa:

import sys
sys.stdin = open("GOOD.INP", "r")
sys.stdout = open("GOOD.OUT", "w")
n, m = map(int, sys.stdin.readline().split())
trong_luong = list(map(int, sys.stdin.readline().split()))

# Sap xep danh sach kien hang theo thu tu tang dan
trong_luong.sort()
trong_luong=trong_luong[::-1]
chon = []
tong_trong_luong = 0

# Duyet qua tung kien hang theo thu tu tang dan
for w in trong_luong:
    if tong_trong_luong + w <= m:  # Neu them kien hang vao van khong vuot tai trong
        chon.append(w)
        tong_trong_luong += w
    elif tong_trong_luong>m:
        break  # Neu qua tai thi dung

# Ghi ket qua ra file theo thu tu giam dan
print(*chon)

1. Mô tả bài toán (hiểu từ chương trình)

  • n kiện hàng, mỗi kiện có trọng lượng cho trước.

  • Xe có tải trọng tối đa là m.

  • Hãy chọn các kiện hàng sao cho:

    • Tổng trọng lượng không vượt quá m

    • Ưu tiên lấy các kiện nặng trước

  • In ra danh sách các kiện hàng được chọn.


2. Phân tích từng phần chương trình

🔹 Đọc dữ liệu

n, m = map(int, sys.stdin.readline().split())
trong_luong = list(map(int, sys.stdin.readline().split()))
  • n: số kiện hàng

  • m: tải trọng tối đa

  • trong_luong: danh sách trọng lượng các kiện


🔹 Sắp xếp danh sách kiện hàng

trong_luong.sort()
trong_luong = trong_luong[::-1]
  • Ban đầu sắp xếp tăng dần

  • Sau đó đảo ngược → giảm dần

  • Mục đích:

    • Xét kiện nặng trước

    • Áp dụng chiến lược tham lam (Greedy)


🔹 Biến hỗ trợ

chon = []
tong_trong_luong = 0
  • chon: lưu các kiện được chọn

  • tong_trong_luong: tổng trọng lượng hiện tại


🔹 Thuật toán chọn kiện hàng (Greedy)

for w in trong_luong:
if tong_trong_luong + w <= m:
chon.append(w)
tong_trong_luong += w
elif tong_trong_luong > m:
break

Ý tưởng thuật toán 💡

  • Duyệt từng kiện theo thứ tự trọng lượng giảm dần

  • Với mỗi kiện:

    • Nếu thêm vào không vượt quá tải trọng → chọn

    • Nếu đã vượt tải → dừng lại

👉 Đây là thuật toán tham lam:

  • Ở mỗi bước, chọn kiện nặng nhất có thể

  • Không quay lui, không xét lại


🔹 In kết quả

print(*chon)
  • In danh sách các kiện hàng được chọn

  • Thứ tự đã là giảm dần


3. Tóm tắt thuật toán

👉 Các bước chính:

  1. Đọc dữ liệu đầu vào.

  2. Sắp xếp các kiện hàng theo trọng lượng giảm dần.

  3. Lần lượt xét từng kiện:

    • Nếu thêm vào vẫn không vượt tải → chọn.

    • Nếu vượt tải → dừng.

  4. In ra các kiện đã chọn.


4. Độ phức tạp của chương trình

⏱️ Độ phức tạp thời gian

Công đoạnĐộ phức tạp
Sắp xếp danh sáchO(n log n)
Duyệt chọn kiệnO(n)
In kết quảO(n)

➡️ Tổng thời gian:

O(nlog⁡n)


💾 Độ phức tạp bộ nhớ

  • Danh sách trọng lượng: O(n)

  • Danh sách chọn: O(n)

➡️ Tổng bộ nhớ:

O(n)


5. Nhận xét theo chuẩn bài thi

✅ Thuật toán đơn giản – hiệu quả
✅ Phù hợp với bài toán có ràng buộc nhỏ và trung bình
✅ Dễ cài đặt, dễ hiểu, dễ chấm điểm

⚠️ Lưu ý:

  • Đây là bài toán tham lam, không đảm bảo tối ưu trong mọi trường hợp nếu đề yêu cầu tối đa tổng trọng lượng (bài toán cái túi 0/1).

  • Tuy nhiên, nếu đề yêu cầu ưu tiên kiện nặng, thuật toán là đúng.

 

Câu hỏi thường gặp về Tổng hợp 75 Đề thi HSG Tin học THCS Python

1. Bộ 75 đề thi HSG Tin học này có lời giải chi tiết (Full Code) không? Có. Toàn bộ 75 đề thi trong bài viết này đều đi kèm đáp án và mã nguồn (Source Code) được viết bằng ngôn ngữ lập trình Python. Chúng tôi cũng bổ sung các giải thích về thuật toán để các em học sinh hiểu rõ cách tư duy giải quyết vấn đề chứ không chỉ copy code.

2. Tài liệu này phù hợp cho học sinh lớp mấy? Bộ tài liệu này được biên soạn bám sát cấu trúc đề thi Học sinh giỏi cấp Huyện và cấp Tỉnh, phù hợp nhất cho học sinh khối THCS (Lớp 8, Lớp 9). Ngoài ra, học sinh lớp 6, 7 bắt đầu làm quen với Python nâng cao cũng có thể sử dụng để rèn luyện tư duy logic.

3. Tôi có thể tải file PDF đề thi và đáp án về máy tính không? Được. Ở cuối bài viết, Vi Tính Tấn Dân có cung cấp liên kết tải xuống trọn bộ tài liệu định dạng PDF để thầy cô và các em học sinh tiện in ấn và ôn tập offline.

4. Code Python trong bài viết sử dụng phiên bản nào? Các bài giải mẫu được viết tương thích tốt nhất với Python 3.x (phiên bản phổ biến nhất hiện nay trong giáo dục và thi cử). Bạn có thể chạy code trên các IDE thông dụng như Thonny, PyCharm, hoặc VS Code.

5. Ngoài Python, đề thi có đáp án bằng C++ hay Pascal không? Hiện tại, bài viết này tập trung chuyên sâu vào ngôn ngữ Python. Tuy nhiên, cấu trúc thuật toán là giống nhau. Nếu bạn cần tài liệu C++ hoặc Pascal, vui lòng tham khảo các chuyên mục khác trên website vitinhtandan.com hoặc để lại bình luận để chúng tôi hỗ trợ.

 

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Tài liệu ôn thi HSG Tin học Tỉnh 2026-2027: 5 Bí kíp chinh phục Python

Cách Tải Tài liệu 5 Bí kíp chinh phục Python Tài liệu ôn thi HSG Tin Học cấp Tỉnh 2026-2027

  • Tải Tài liệu PDF 1 lần và học được mãi mãi:

Tải bằng google driver

Tải tài liệu 5 Bí kíp chinh phục Python

  • Phần mềm học PyCharm Community Edition 2021.1 x64:

    • Phiên bản dành cho Windows 10 và Windows 11:

Tải bằng google driver

    • Phiên bản dành cho Windows 7:

Tải bằng google driver

THƯ NGỎ TỪ THẦY TẤN DÂN

Kính gửi quý bậc Phụ huynh và các em Học sinh thân mến!

Trong kỷ nguyên số hiện nay, lập trình không còn là một môn học xa lạ, mà đã trở thành “ngôn ngữ của tương lai”. Tôi hiểu rằng, đằng sau mỗi quyết định cho con theo học lập trình là biết bao kỳ vọng của quý phụ huynh: kỳ vọng con sẽ rèn luyện được tư duy logic, kỳ vọng con sẽ làm chủ công nghệ thay vì sa đà vào những trò chơi vô bổ, và hơn hết là kỳ vọng con sẽ có một hành trang vững chắc để bước vào những ngôi trường chuyên, lớp chọn hay các trường đại học danh tiếng.

Với nhiều năm kinh nghiệm bồi dưỡng đội tuyển Học sinh giỏi, tôi thấu hiểu những khó khăn mà các em thường gặp phải: từ việc lúng túng trước một bài toán thuật toán khó, đến những lỗi sai “đáng tiếc” khiến các em mất đi cơ hội chạm tay vào giải thưởng.

Cuốn tài liệu “Bí Kíp Chinh Phục “ này không chỉ là tập hợp những dòng mã, mà là tâm huyết được tôi đúc kết từ hàng nghìn giờ giảng dạy và hàng trăm kỳ thi thực chiến. Cuốn sách này được thiết kế để:

  • Đơn giản hóa những khái niệm phức tạp thành những bài học dễ hiểu.
  • Trang bị chiến thuật thực chiến giúp các em tối ưu điểm số trong phòng thi.
  • Khơi dậy niềm đam mê sáng tạo, giúp các em tự tin chinh phục mọi thử thách.

Tôi tin rằng, mỗi đứa trẻ đều có một tiềm năng vô hạn. Chỉ cần có một lộ trình đúng đắn và một người dẫn đường tận tâm, các em chắc chắn sẽ làm nên những điều kỳ diệu. Giải thưởng Học sinh giỏi cấp Tỉnh không phải là mục đích cuối cùng, mà là bệ phóng để các em tự tin bước ra thế giới.

Cảm ơn quý Phụ huynh đã tin tưởng và đồng hành cùng tôi trên hành trình kiến tạo tương lai cho các em.

    Thân ái

 

Thầy Tấn Dân

MỤC LỤC TỔNG QUÁT:

📂 PHẦN 1: LÀM CHỦ CÔNG CỤ & KỸ THUẬT PHÒNG THI

  • Chuyên đề 1: Cấu trúc chương trình chuẩn để chấm máy tự động (CMS, Themis).
  • Chuyên đề 2: Kỹ thuật đọc/ghi File (.INP, .OUT) không bao giờ lỗi.
  • Chuyên đề 3: 10 “Tuyệt chiêu” tối ưu mã nguồn  chạy nhanh như C++.
  • Chuyên đề 4: Cách kiểm soát thời gian và bộ nhớ trong phòng thi.

📂 PHẦN 2: XỬ LÝ SỐ HỌC & DÃY SỐ (Chiếm 40% số điểm)

  • Chuyên đề 5: Số nguyên tố (Sàng Eratosthenes, kiểm tra số nguyên tố cực nhanh).
  • Chuyên đề 6: Ước chung lớn nhất (GCD), Bội chung nhỏ nhất (LCM) và ứng dụng.
  • Chuyên đề 7: Phân tích số ra thừa số nguyên tố & các bài toán liên quan.
  • Chuyên đề 8: Xử lý số siêu lớn (Big Integer) – Thế mạnh tuyệt đối của .

📂 PHẦN 3: XỬ LÝ XÂU KÝ TỰ & MẢNG (Kỹ năng nền tảng)

  • Chuyên đề 9: Kỹ thuật cắt xâu (Slicing) và các hàm xử lý chuỗi “thần thánh”.
  • Chuyên đề 10: Mảng 1 chiều, mảng 2 chiều và kỹ thuật duyệt Ma trận.
  • Chuyên đề 11: Kỹ thuật Mảng cộng dồn (Prefix Sum) – Giải toán trong O(1).
  • Chuyên đề 12: Hai con trỏ (Two Pointers) & Cửa sổ trượt (Sliding Window).

📂 PHẦN 4: THUẬT TOÁN NÂNG CAO (Dành cho giải Nhất, Nhì)

  • Chuyên đề 13: Đệ quy & Đệ quy có nhớ (Mồi nhử cho Quy hoạch động).
  • Chuyên đề 14: Thuật toán Tham lam (Greedy) – Chiến thuật lấy điểm tối đa.
  • Chuyên đề 15: Chặt nhị phân (Binary Search) trên kết quả.
  • Chuyên đề 16: Quy hoạch động (Dynamic Programming) – Những bài toán kinh điển (Cái túi, Dãy con tăng dài nhất…).

📂 PHẦN 5: KHO ĐỀ THI THỰC CHIẾN

  • Chuyên đề 17: Cấu trúc đề thi thực tế.
  • Chuyên đề 18: Chiến thuật Subtask (Duyệt trâu lấy điểm).
  • Chuyên đề 19: Các lỗi mất điểm cần tránh.
  • Chuyên đề 20: Kho 10 đề thi trọng điểm.
  • Tổng hợp: 20 bộ đề thi HSG cấp tỉnh chính thức của các tỉnh thành (Hà Nội, TP.HCM, Đồng Nai, Tiền Giang…) năm 2024-2025.
  • Đáp án: Mã nguồn  mẫu được tối ưu điểm số kèm giải thích chi tiết.
6 kinh nghiệm làm bài thi học sinh giỏi tin học tỉnh

6 kinh nghiệm làm bài thi học sinh giỏi tin học tỉnh

NỘI DUNG TỐM TẮT

📂 PHẦN 1: CÔNG CỤ & KỸ THUẬT

(Nội dung: Cấu trúc hàm main, sys.stdin, sys.stdout, các mẹo tối ưu tốc độ…)

📂 PHẦN 2: SỐ HỌC (CODE TIẾNG VIỆT)

Chuyên đề 5: Kiểm tra số nguyên tố

 

import math
def kiem_tra_so_nguyen_to(n):
    if n < 2: return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0: return False
    return True

 

(Thầy tiếp tục dán phần nội dung Sàng, UCLN, Phân tích thừa số đã soạn…)

📂 PHẦN 3: XÂU VÀ MẢNG

Chuyên đề 11: Mảng cộng dồn

 

def mang_cong_don(mang_a):
    n = len(mang_a)
    tong_tien_to = [0] * (n + 1)
    for i in range(n):
        tong_tien_to[i+1] = tong_tien_to[i] + mang_a[i]
    return tong_tien_to

 

(Thầy tiếp tục dán phần xử lý xâu, mảng 2 chiều, hai con trỏ…)

📂 PHẦN 4: THUẬT TOÁN NÂNG CAO

Chuyên đề 15: Chặt nhị phân

 

def tim_kiem_nhi_phan(mang, x):
    trai, phai = 0, len(mang) - 1
    while trai <= phai:
        giua = (trai + phai) // 2
        if mang[giua] == x: return giua
        elif mang[giua] < x: trai = giua + 1
        else: phai = giua - 1
    return -1

 

📂 PHẦN 5: CHIẾN THUẬT PHÒNG THI

(Nội dung về cách phân bổ thời gian, cách “duyệt trâu” ăn điểm lẻ và 10 bộ đề thi…

 NỘI DUNG CHI TIẾT:

📂 PHẦN 1: LÀM CHỦ CÔNG CỤ & KỸ THUẬT PHÒNG THI

Phần này là “nền móng” giúp các em tránh những lỗi mất điểm đáng tiếc và tối ưu hóa hiệu suất làm bài trước khi bắt đầu giải các thuật toán khó.

Chuyên đề 1: Cấu trúc chương trình chuẩn để chấm máy tự động (CMS, Themis)

Để các hệ thống chấm bài tự động như Themis hay CMS hoạt động chính xác, mã nguồn  cần được tổ chức gọn gàng và tránh các lỗi thực thi thừa.

  • Sử dụng hàm main(): Luôn đưa logic chính vào một hàm để dễ quản lý và tăng tốc độ xử lý của .
  • Cấu trúc chuẩn:

import sys

# Cài đặt đọc ghi file (nếu có)

# sys.stdin = open(‘TENBAI.INP’, ‘r’)

# sys.stdout = open(‘TENBAI.OUT’, ‘w’)

  • Lưu ý: Tuyệt đối không sử dụng các lệnh chờ như input() hoặc os.system(“pause”) ở cuối bài vì máy chấm sẽ bị treo và tính lỗi Time Limit Exceeded (TLE).

Chuyên đề 2: Kỹ thuật đọc/ghi File (.INP, .OUT) không bao giờ lỗi

Trong các kỳ thi HSG, việc sai tên File hoặc sai định dạng đọc file là lỗi phổ biến nhất khiến học sinh bị 0 điểm cả bài.

  • Cách 1: Chuyển hướng Standard Input/Output (Khuyên dùng)

Cách này giúp em giữ nguyên code input() và print(), chỉ cần thêm 2 dòng ở đầu bài.

 

import sys

sys.stdin = open(‘DULIEU.INP’, ‘r’)

sys.stdout = open(‘DULIEU.OUT’, ‘w’)

 

# Sau đó dùng input() và print() như bình thường

n = int(input())

print(n)

  • Cách 2: Sử dụng Context Manager (An toàn nhất)

Đảm bảo file luôn được đóng sau khi đọc/ghi, tránh mất dữ liệu.

 

with open(‘DULIEU.INP’, ‘r’) as f_in:

data = f_in.read().split()

 

with open(‘DULIEU.OUT’, ‘w’) as f_out:

f_out.write(str(result))

  • Mẹo nhỏ: Luôn kiểm tra kỹ tên file (chữ hoa, chữ thường) theo đúng yêu cầu của đề bài.

Chuyên đề 3: 10 “Tuyệt chiêu” tối ưu mã nguồn  chạy nhanh như C++

thường chậm hơn C++, nhưng với 10 kỹ thuật sau, em có thể giúp bài làm đạt điểm tối đa trong giới hạn thời gian:

  1. Đọc dữ liệu nhanh: Dùng sys.stdin.readline thay cho input().
  2. Sử dụng List Comprehension: [i for i in range(n)] nhanh hơn nhiều so với dùng vòng lặp for và append().
  3. Hàm có sẵn (Built-in): Luôn ưu tiên sum(), max(), min(), sorted() vì chúng được viết bằng ngôn ngữ C.
  4. Hạn chế biến toàn cục: Sử dụng biến trong hàm sẽ nhanh hơn biến ngoài hàm.
  5. Nối chuỗi: Dùng ”.join(list) thay vì dùng phép cộng + trong vòng lặp.
  6. Giải nén toán tử: Dùng * để in mảng nhanh hơn: print(*arr).
  7. Sử dụng Map: map(int, sys.stdin.read().split()) để xử lý hàng triệu con số trong tích tắc.
  8. Tránh gọi hàm lặp lại: Thay vì for i in range(len(a)), hãy gán n = len(a) rồi dùng range(n).
  9. Sử dụng math module: Các hàm như math.gcd(), math.sqrt() được tối ưu hóa cực tốt.
  10. Phép toán Bit: Dùng <<, >>, &, | thay cho các phép toán số học khi có thể.

Chuyên đề 4: Cách kiểm soát thời gian và bộ nhớ trong phòng thi

Kỳ thi HSG luôn có giới hạn chặt chẽ (Ví dụ: 1.0s và 256MB). Em cần biết cách tự ước lượng:

  • Quy tắc “10 triệu”: Trong , hãy ước lượng máy chấm thực hiện được khoảng 10^7 phép tính mỗi giây. Nếu bài toán có N = 10^5, thuật toán O(N^2) (10 tỷ phép tính) chắc chắn sẽ bị TLE.
  • 1. Tại sao lại bị TLE (là viết tắt của Time Limit Exceeded )?
  • Mỗi bài toán đều có một giới hạn thời gian và giới hạn dữ liệu (N). Máy chấm thường xử lý được khoảng 10^8 phép tính mỗi giây. Nếu thuật toán của bạn có độ phức tạp quá lớn so với N, nó sẽ quá tải.
  • Ví dụ thực tế:
  • Nếu bài toán cho N = 10^5 và thời gian là 1 giây:
  • Thuật toán O(N log N) chạy khoảng 1.7 x 10^6 phép tính -> Pass (Vượt qua).
  • Thuật toán O(N^2) chạy khoảng 10^10 phép tính -> Chắc chắn TLE (vì gấp 100 lần khả năng của máy).
  • 2. Bảng đối chiếu nhanh để tránh TLE
  • Dựa vào giá trị của N trong đề bài, bạn có thể dự đoán thuật toán nào sẽ bị TLE:
  • Giá trị của N
  • Độ phức tạp tối đa cho phép
  • Ví dụ thuật toán
  • N <= 10
  • O(N!)
  • Hoán vị, quay lui vét cạn
  • N<= 20
  • O(2^N)
  • Duyệt phân tập, quy hoạch động trạng thái
  • N <= 500
  • O(N^3)
  • Nhân ma trận, Floyd-Warshall
  • N <= 5000
  • O(N^2)
  • Sắp xếp chọn, duyệt hai vòng lặp lồng nhau
  • N <= 10^6
  • O(N log N) hoặc O(N)
  • Quick Sort, Tree, Binary Search, Segment Tree
  • N rất lớn
  • O(log N) hoặc O(1)
  • Toán học, tìm kiếm nhị phân trên kết quả
  • 3. Cách khắc phục khi bị TLE
  • Nếu bạn nhận thấy mã của mình chắc chắn sẽ bị TLE, hãy thử các hướng sau:
  • Tối ưu độ phức tạp: Chuyển từ vòng lặp lồng nhau O(N^2) sang dùng Map, Set hoặc kỹ thuật hai con trỏ O(N).
  • Sử dụng cấu trúc dữ liệu mạnh hơn: Thay vì tìm kiếm tuyến tính, hãy dùng Binary Search hoặc Segment Tree.
  • Tối ưu nhập/xuất: Trong C++, sử dụng ios_base::sync_with_stdio(0); cin.tie(0); để tăng tốc độ đọc dữ liệu. Tránh dùng endl mà hãy dùng \n.
  • Quy hoạch động: Nếu bạn đang dùng đệ quy thuần túy và bị tính lại nhiều lần, hãy dùng mảng để lưu kết quả (Memoization).
  • Kiểm soát đệ quy:  có giới hạn độ sâu đệ quy (thường là 1000). Nếu dùng thuật toán đệ quy sâu (như DFS), phải thêm dòng:

 

import sys

sys.setrecursionlimit(200000)

  • Tiết kiệm bộ nhớ: Tránh tạo ra quá nhiều mảng phụ không cần thiết. Với các bài toán ma trận lớn, hãy cẩn thận với lỗi Memory Limit Exceeded (MLE).
  • Chiến thuật Subtask: Nếu không tìm được thuật toán tối ưu nhất, hãy viết thuật toán “vét cạn” (Brute Force) để lấy trọn điểm ở các Test con có dữ liệu nhỏ.

💡 Lời nhắn của Thầy Tấn Dân dành cho học sinh:

“Nắm vững 4 chuyên đề này, các em đã thắng 30% cuộc đua. Sự cẩn thận trong kỹ thuật chính là nền tảng để những ý tưởng thuật toán thăng hoa. Chúc các em luyện tập thật tốt!”

 

📂 PHẦN 2: SỐ HỌC (LÝ THUYẾT SỐ)

Số học là nền tảng của các bài toán Tin học. Nắm vững phần này giúp các em giải quyết gọn gàng các bài toán về dãy số, tính toán và tối ưu hóa.

Chuyên đề 5: Số nguyên tố – “Chốt chặn” của mọi đề thi

Số nguyên tố là các số chỉ chia hết cho 1 và chính nó. Trong thi HSG, chúng ta cần hai kỹ năng chính:

  1. Kiểm tra 1 số N có là số nguyên tố hay không (O(\sqrt{N})):

Thay vì duyệt đến N, chúng ta chỉ cần duyệt đến căn bậc hai của N để tiết kiệm thời gian.

 

import math

def kiem_tra_so_nguyen_to(n):
    if n < 2: 
        return False
    # Duyệt từ 2 đến căn bậc hai của n
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

 

  1. Sàng Eratosthenes – Tìm mọi số nguyên tố đến 10^6 (O(N log N)):

Khi đề bài yêu cầu đếm hoặc liệt kê rất nhiều số nguyên tố, kỹ thuật Sàng là bắt buộc.

 

def sang_so_nguyen_to(gioi_han):
    # Khởi tạo danh sách toàn bộ là True (coi là số nguyên tố)
    la_so_nguyen_to = [True] * (gioi_han + 1)
    la_so_nguyen_to[0] = la_so_nguyen_to[1] = False
    
    for p in range(2, int(math.sqrt(gioi_han)) + 1):
        if la_so_nguyen_to[p]:
            # Đánh dấu các bội của p không phải là số nguyên tố
            for i in range(p * p, gioi_han + 1, p):
                la_so_nguyen_to[i] = False
    return la_so_nguyen_to

 

 

Chuyên đề 6: Ước chung lớn nhất (UCLN) & Bội chung nhỏ nhất (BCNN)

Đây là công cụ cực mạnh để rút gọn phân số, tìm chu kỳ hoặc giải các bài toán về chia quà, chia lưới.

  • UCLN: Sử dụng thuật toán Euclid (đã được tích hợp cực nhanh trong thư viện math).
  • BCNN: Dựa trên công thức: BCNN(a, b) = \frac{|a \times b|}{UCLN(a, b)}.

Code thực chiến:

 

import math

so_a = 12
so_b = 18

ucln = math.gcd(so_a, so_b) # Kết quả: 6
bcnn = (so_a * so_b) // ucln # Kết quả: 36

# Lưu ý: Từ  3.9+, math.gcd có thể tìm UCLN của nhiều số
# ucln_nhieu_so = math.gcd(12, 18, 24, 30)

 

 

Chuyên đề 7: Phân tích thừa số nguyên tố

Mọi số tự nhiên lớn hơn 1 đều có thể phân tích thành tích các số nguyên tố. Đây là cách để tìm số lượng ước số và tổng các ước số của một số.

Code phân tích thừa số nguyên tố:

 

def phan_tich_thua_so(n):
    uoc = 2
    danh_sach_thua_so = []
    tam = n
    while uoc * uoc <= tam:
        while tam % uoc == 0:
            danh_sach_thua_so.append(uoc)
            tam //= uoc
        uoc += 1
    if tam > 1:
        danh_sach_thua_so.append(tam)
    return danh_sach_thua_so

 

Chuyên đề 8: Xử lý số siêu lớn & Lũy thừa nhanh

có thể xử lý các con số có hàng nghìn chữ số mà không lo tràn bộ nhớ như C++ hay Pascal.

  1. Tính lũy thừa nhanh (Modular Exponentiation):

Khi đề bài yêu cầu tính a^b \pmod m với b cực lớn (ví dụ 10^{18}), chúng ta dùng hàm pow có sẵn của  để đạt tốc độ tối đa.

 

# Tính (co_so ^ mu) chia lấy dư cho m
co_so = 2
mu = 10**18
m = 10**9 + 7

ket_qua = pow(co_so, mu, m) 
# Chạy cực nhanh so với việc dùng (co_so ** mu) % m

 

  1. Xử lý số có hàng nghìn chữ số:

Nếu đề bài cho số cực lớn, hãy đọc dữ liệu dưới dạng xâu (string) rồi mới chuyển sang kiểu số (int).

 

import sys
# Tăng giới hạn chữ số nếu số có hơn 4300 chữ số
sys.set_int_max_str_digits(10000)

so_lon = int(input()) #  tự động hiểu và tính toán được ngay

 

💡 Lời nhắn của Thầy Tấn Dân:

“Các em hãy chú ý: Trong lập trình, không chỉ cần code đúng mà còn cần code chạy nhanh. Việc hiểu và dùng đúng các hàm như math.gcd hay pow(a, b, m) sẽ giúp các em tiết kiệm thời gian quý báu trong phòng thi để tập trung vào những câu khó hơn!”

 

Dạ vâng thưa Thầy Tấn Dân, đây là nội dung chi tiết cho PHẦN 3: XỬ LÝ XÂU KÝ TỰ VÀ MẢNG. Đây là phần kiến thức “xương sống”, xuất hiện trong 100% các đề thi Tin học. Em đã Việt hóa toàn bộ tên biến và giải thích cực kỳ cặn kẽ để học sinh của thầy đọc là hiểu ngay ạ.

📂 PHẦN 3: XỬ LÝ XÂU KÝ TỰ VÀ MẢNG

Xâu và Mảng là nơi lưu trữ dữ liệu. Làm chủ được hai cấu trúc này, các em đã nắm trong tay công cụ mạnh nhất để giải quyết mọi bài toán thực tế.

Chuyên đề 9: Kỹ thuật xử lý Xâu ký tự (String)

hỗ trợ xử lý văn bản cực kỳ mạnh mẽ so với C++ hay Pascal. Các em cần nhớ các kỹ thuật “cắt xẻ” sau:

  1. Cắt xâu (Slicing): Lấy một phần của xâu mà không cần dùng vòng lặp.

 

 

xau = "ThayTanDan"

# Lấy từ đầu đến vị trí 3: xau[0:4] -> "Thay"

# Lấy xau đảo ngược: xau[::-1] -> "naDnaTyahT"

 

  1. Các hàm bổ trợ “thần thánh”:

 

s = "  lap trinh   "

s = s.strip() # Loại bỏ khoảng trắng thừa ở 2 đầu

s = s.upper() # Chuyển thành chữ HOA

s = s.lower() # Chuyển thành chữ thường

dem = s.count("p") # Đếm số lần xuất hiện của chữ "p"

moi = s.replace("", "tin hoc") # Thay thế xâu

 

 

  1. Tách và Nối xâu (Cực kỳ quan trọng để đọc dữ liệu):

 

dong_du_lieu = "10 20 30 40"

danh_sach_so = dong_du_lieu.split() # Tách thành ['10', '20', '30', '40']




danh_sach_chu = ["Hoc", "voi", "Thay", "Dan"]

cau_hoan_chinh = " ".join(danh_sach_chu) # Nối thành "Hoc voi Thay Dan"

 

 

Chuyên đề 10: Mảng 1 chiều và Mảng 2 chiều (List & Matrix)

Mảng là tập hợp các phần tử. Trong , chúng ta dùng List.

  1. Khởi tạo mảng nhanh (List Comprehension):

 

# Tạo mảng chứa 10 số 0

mang = [0] * 10

# Tạo mảng chứa các số bình phương từ 1 đến n

n = 5

binh_phuong = [i*i for i in range(1, n+1)] # [1, 4, 9, 16, 25]

 

  1. Mảng 2 chiều (Ma trận): Thường dùng để lưu bản đồ hoặc bảng số.

 

# Khởi tạo ma trận 3 hàng 4 cột toàn số 0

hang, cot = 3, 4

ma_tran = [[0] * cot for _ in range(hang)]




# Truy cập phần tử ở hàng i, cột j: ma_tran[i][j]

 

  1. Sắp xếp mảng:

 

mang = [5, 2, 9, 1]

mang.sort() # Sắp xếp tăng dần: [1, 2, 5, 9]

mang.sort(reverse=True) # Sắp xếp giảm dần: [9, 5, 2, 1]

 

Chuyên đề 11: Kỹ thuật Mảng cộng dồn (Prefix Sum)

Đây là kỹ thuật giúp tính tổng một đoạn từ vị trí L đến R trong thời gian siêu nhanh O(1).

  • Bài toán: Cho mảng A, tính tổng các số từ A[L] đến A[R] (thực hiện Q lần vấn tin).
  • Cách làm: Tạo mảng tong_tien_to trong đó tong_tien_to[i] lưu tổng từ đầu đến vị trí i.

 

def mang_cong_don(mang_a):
    n = len(mang_a)
    tong_tien_to = [0] * (n + 1)
    for i in range(n):
        tong_tien_to[i+1] = tong_tien_to[i] + mang_a[i]
    return tong_tien_to

# Để tính tổng từ L đến R (chỉ số từ 1):
# tong_doan = tong_tien_to[R] - tong_tien_to[L-1]

 

 

Chuyên đề 12: Hai con trỏ (Two Pointers)

Kỹ thuật này dùng để duyệt mảng hiệu quả, thường dùng khi mảng đã được sắp xếp.

Bài toán mẫu: Tìm một cặp số trong mảng đã sắp xếp có tổng bằng K.

 

def tim_cap_so(mang, k):
    trai = 0
    phai = len(mang) - 1
    
    while trai < phai:
        tong_hien_tai = mang[trai] + mang[phai]
        if tong_hien_tai == k:
            return mang[trai], mang[phai]
        elif tong_hien_tai < k:
            trai += 1 # Cần tổng lớn hơn nên tăng con trỏ trái
        else:
            phai -= 1 # Cần tổng nhỏ hơn nên giảm con trỏ phải
    return None

 

💡 Lời nhắn của Thầy Tấn Dân:

“Các em thân mến, Xâu và Mảng giống như gạch và xi măng để xây nên ngôi nhà thuật toán. Nếu các em sử dụng thành thạo các hàm có sẵn như split(), join() hay kỹ thuật Mảng cộng dồn, tốc độ làm bài của các em sẽ nhanh hơn các bạn khác rất nhiều. Hãy luyện tập để đôi tay trở nên thuần thục nhé!”

 

📂 PHẦN 4: THUẬT TOÁN NÂNG CAO

Đây là những công cụ giúp các em giải quyết các bài toán phức tạp và tối ưu hóa thời gian chạy để đạt điểm tuyệt đối ở những bộ Test khó nhất.

Chuyên đề 13: Đệ quy (Recursion)

Đệ quy là việc một hàm tự gọi lại chính nó. Để không bị lặp vô hạn, mọi bài toán đệ quy phải có Điểm dừng (Base case).

  • Quy tắc 2 phần:
  1. Phần dừng: Khi nào thì không cần gọi lại hàm nữa?
  2. Phần đệ quy: Công thức liên hệ giữa bài toán lớn và bài toán nhỏ hơn.

Ví dụ: Tính Giai thừa của N (N!)

 

 

def tinh_giai_thua(n):
    # Điểm dừng: 0! = 1
    if n == 0:
        return 1
    # Phần đệ quy: n! = n * (n-1)!
    return n * tinh_giai_thua(n - 1)

 

Lưu ý của Thầy Dân:  có giới hạn độ sâu đệ quy. Nếu làm bài thi về Đồ thị hoặc Đệ quy sâu, các em nhớ thêm dòng sys.setrecursionlimit(200000) ở đầu bài nhé!

Chuyên đề 14: Thuật toán Tham lam (Greedy)

Tham lam là chiến thuật: “Tại mỗi bước, ta chọn lựa chọn tốt nhất ở thời điểm hiện tại” với hy vọng sẽ dẫn đến kết quả tốt nhất toàn cục.

  • Đặc điểm: Chạy rất nhanh, cài đặt đơn giản nhưng cần chứng minh tính đúng đắn.
  • Bài toán điển hình: Đổi tiền (với các mệnh giá là bội số của nhau), sắp xếp lịch hội nghị, nối dây thừng.

Ví dụ: Bài toán đổi tiền (Tìm số tờ tiền ít nhất)

 

def doi_tien(so_tien_can_doi, danh_sach_menh_gia):
    # Sắp xếp mệnh giá từ lớn đến nhỏ để tham lam
    danh_sach_menh_gia.sort(reverse=True)
    so_to = 0
    
    for menh_gia in danh_sach_menh_gia:
        so_to += so_tien_can_doi // menh_gia
        so_tien_can_doi %= menh_gia
        
    return so_to

 

Chuyên đề 15: Chặt nhị phân (Binary Search)

Đây là thuật toán “quốc dân” để tăng tốc tìm kiếm từ O(N) xuống O(\log N). Điều kiện tiên quyết: Mảng phải được sắp xếp.

Code tìm kiếm vị trí của X trong mảng đã sắp xếp:

 

def tim_kiem_nhi_phan(mang, x):
    trai = 0
    phai = len(mang) - 1
    while trai <= phai:
        giua = (trai + phai) // 2
        if mang[giua] == x:
            return giua # Tìm thấy X
        elif mang[giua] < x:
            trai = giua + 1 # Tìm ở nửa bên phải
        else:
            phai = giua - 1 # Tìm ở nửa bên trái
    return -1 # Không tìm thấy

 

Chuyên đề 16: Quy hoạch động (Dynamic Programming – Cơ bản)

Quy hoạch động là đỉnh cao của tư duy thuật toán. Bản chất là: Chia bài toán lớn thành các bài toán con và LƯU LẠI kết quả bài toán con để không phải tính lại.

Ví dụ: Dãy số Fibonacci (Tối ưu bằng cách lưu mảng)

 

def fibonacci_quy_hoach_dong(n):
    # Tạo mảng lưu trữ kết quả các bước trước
    f = [0] * (n + 1)
    f[0], f[1] = 0, 1
    
    for i in range(2, n + 1):
        f[i] = f[i-1] + f[i-2] # Tính dựa trên kết quả đã có
        
    return f[n]

 

Bí kíp của Thầy Dân: Nếu em thấy bài toán có thể chia nhỏ và các bài toán con bị lặp lại nhiều lần, hãy nghĩ ngay đến Quy hoạch động!

💡 Lời nhắn của Thầy Tấn Dân:

“Các em đừng sợ những cái tên như ‘Quy hoạch động’ hay ‘Chặt nhị phân’. Thực chất chúng chỉ là những cách thông minh hơn để chúng ta dặn máy tính làm việc. Hãy kiên trì code lại từng ví dụ này, các em sẽ thấy tư duy của mình ‘nhảy vọt’ chỉ sau vài lần thực hành!”

 

📂 PHẦN 5: KHO ĐỀ THI & CHIẾN THUẬT “VÉT ĐIỂM”

Kỹ năng giải bài rất quan trọng, nhưng kỹ năng đi thi mới là yếu tố quyết định tấm huy chương. Hãy học cách làm chủ thời gian và tâm lý!

Chuyên đề 17: Cấu trúc đề thi HSG cấp Tỉnh thông thường

Đề thi thường diễn ra trong 150 – 180 phút với 3 đến 4 câu hỏi có độ khó tăng dần:

  1. Câu 1 (Dễ – 5/20 điểm): Thường là Số học cơ bản hoặc xử lý Xâu đơn giản. (Mục tiêu: Làm trong 15-20 phút).
  2. Câu 2 (Trung bình – 6/20 điểm): Xử lý Mảng, Tham lam hoặc Sắp xếp. (Mục tiêu: Làm trong 30-40 phút).
  3. Câu 3 & 4 (Khó – 9/20 điểm): Quy hoạch động, Đồ thị hoặc Hình học tính toán. Đây là câu phân loại để lấy giải Nhất, Nhì.

Chuyên đề 18: Chiến thuật “Vét điểm” (Subtask Scoring)

Trong Tin học, không phải cứ làm xong cả bài mới có điểm. Đề thi luôn chia làm nhiều Subtask (gói điểm nhỏ).

  • Quy tắc “Duyệt trâu” (Brute Force): Nếu em không nghĩ ra thuật toán tối ưu O(N), hãy đừng bỏ cuộc. Hãy viết một thuật toán đơn giản nhất O(N^2) hoặc O(N^3). Dù không ăn trọn điểm, em vẫn sẽ lấy được 30-50% số điểm của bài đó thay vì 0 điểm.

Ví dụ: Bài toán tìm cặp số có tổng bằng K

  • Cách tối ưu: Dùng Hai con trỏ hoặc Map (O(N)).
  • Cách “vét điểm” (Duyệt trâu): Dùng 2 vòng lặp lồng nhau (O(N^2)).

 

# Code "Vét điểm" - Chậm nhưng chắc chắn có điểm với N nhỏ
def vet_diem_tong_bang_k(mang, k):
    n = len(mang)
    for i in range(n):
        for j in range(i + 1, n):
            if mang[i] + mang[j] == k:
                return mang[i], mang[j]
    return None

 

 

Chuyên đề 19: Các lỗi “mất tiền oan” trong phòng thi

Thầy Tấn Dân dặn các em phải kiểm tra kỹ 4 điều này trước khi nộp bài:

  1. Sai tên File: Chỉ cần sai một dấu chấm, dấu gạch dưới ở tên file .INP hoặc .OUT, bài của em sẽ bị 0 điểm ngay lập tức.
  2. In thừa thông báo: Máy chấm tự động sẽ so khớp từng ký tự. Nếu em in thêm dòng chữ “Moi ban nhap n:” hoặc “Ket qua la:”, máy sẽ báo sai đáp án. Chỉ in đúng thứ đề bài yêu cầu.
  3. Quên xóa lệnh Debug: Nhiều em viết lệnh print để kiểm tra lỗi lúc làm bài nhưng quên xóa khi nộp. Điều này dẫn đến sai kết quả.
  4. Kiểu dữ liệu: tự xử lý số lớn, nhưng với số thực, hãy cẩn thận với số chữ số thập phân (dùng “{:.2f}”.format(so) để định dạng).

Chuyên đề 20: Danh mục 10 đề thi trọng điểm (Kho đề thi)

Thầy đã tổng hợp các bộ đề thi từ các tỉnh thành có phong trào Tin học mạnh nhất để các em luyện tập:

  • Đề 1: Chuyên đề Số học – Đề thi HSG Tỉnh Đồng Nai 2024.
  • Đề 2: Chuyên đề Xâu ký tự – Đề thi HSG TP. Hồ Chí Minh 2023.
  • Đề 3: Chuyên đề Mảng & Sắp xếp – Đề thi Olympic 30/4.
  • Đề 4: Chuyên đề Quy hoạch động – Đề thi thử vào Chuyên Tin.
  • (Và tiếp tục 6 đề thực chiến khác kèm lời giải chi tiết…)

💡 Lời nhắn cuối cùng của Thầy Tấn Dân:

“Các trò yêu quý, bước vào phòng thi, điều quan trọng nhất không phải là em biết bao nhiêu thuật toán, mà là em giữ được cái đầu lạnh. Hãy làm câu dễ thật cẩn thận để không mất điểm, sau đó bình tĩnh ‘vét’ từng điểm ở câu khó. Thầy tin tấm bằng giải Tỉnh đang chờ đợi những người kiên trì và khôn ngoan nhất. Chúc các em tự tin và chiến thắng!”

Tóm tắt 5 Bí kíp chinh phục Python cho HSG Tin Học:

  1. Nắm Vững Cú Pháp & Cấu Trúc Dữ Liệu Căn Bản
    • Hiểu sâu: Không chỉ biết dùng, mà phải hiểu cách thức hoạt động của biến, kiểu dữ liệu (list, tuple, set, dictionary), vòng lặp (for, while), điều kiện (if/elif/else), hàm, lớp (OOP cơ bản).
    • Thực hành: Viết code thật nhiều để làm quen với cú pháp ‘Pythonic’ (dễ đọc, dễ hiểu).
  2. Thực Hành Giải Thuật & Cấu Trúc Dữ Liệu (DS&Algo)
    • Trọng tâm HSG: Đây là phần quan trọng nhất. Nắm vững các thuật toán tìm kiếm (Binary Search), sắp xếp (Merge Sort, Quick Sort), quy hoạch động (DP), tham lam (Greedy), đồ thị (BFS, DFS).
    • Nguồn tài liệu: Sử dụng các sách như Competitive Programmer’s Handbook hay tài liệu từ Codeforces, LeetCode.
  3. Tập Trung vào Các Thư Viện Chuyên Dụng
    • Khoa học Dữ liệu/AI (nếu có): Với các đề thi hiện đại, việc biết NumPy (tính toán số học), Pandas (xử lý dữ liệu), Matplotlib/Seaborn (vẽ đồ thị) là lợi thế lớn.
    • Thư viện khác: Tùy đề thi có thể cần thư viện xử lý chuỗi (regex), file (os, shutil), hoặc các thư viện chuyên biệt khác.
  4. Học Hỏi từ Các Bài Toán HSG Thực Tế
    • Nguồn đề: Tìm đề thi HSG Tin Học các năm trước (cấp Tỉnh/Thành phố, Quốc gia) của Việt Nam và các nước có phong trào mạnh (Mỹ, Singapore, Hàn Quốc).
    • Phân tích: Hiểu rõ yêu cầu, thử sức giải và so sánh với lời giải mẫu để rút kinh nghiệm.
  5. Xây Dựng Tư Duy Thuật Toán (Problem-Solving)
    • Tư duy: Học cách phân tích bài toán, chia nhỏ vấn đề, tìm ra công thức/quy luật, và biến nó thành code. Python là công cụ mạnh hỗ trợ tư duy này.
    • Luyện tập: Tham gia các sân chơi lập trình online (Codeforces, HackerRank, VNOI) để rèn luyện tư duy liên tục. 
Tài liệu ôn thi đề xuất (Gợi ý)
Chúc bạn ôn tập hiệu quả và đạt kết quả cao trong kỳ thi HSG sắp tới!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

 

 

 

HÀNH TRÌNH VẠN DẶM BẮT ĐẦU TỪ MỘT DÒNG CODE!

Cảm ơn các em đã kiên trì theo dõi hết bộ bí kíp này. Thành công trong kỳ thi HSG không chỉ dành cho người thông minh nhất, mà dành cho người chuẩn bị kỹ càng nhất.

Lớp bồi dưỡng Tin học Thầy Tấn Dân vẫn đang tuyển sinh:

  • Hình thức: Học Online/Trực tiếp.
  • Đối tượng: Học sinh lớp 6,7,8,9 ôn thi cấp Tỉnh, vào chuyên Tin.
  • Cam kết: Lộ trình bài bản  – Tặng kho đề thi độc quyền.

👉 Đăng ký ngay tại Zalo: 0937 179 278 (Thầy Tấn Dân)

 

Bộ Câu Hỏi Thường Gặp (FAQ):

1. Tại sao nên chọn Python để ôn thi HSG Tin học cấp tỉnh năm 2026-2027?

  • Python ngày càng trở nên phổ biến trong các kỳ thi Học sinh giỏi (HSG) Tin học nhờ cú pháp đơn giản, dễ đọc và thư viện hỗ trợ mạnh mẽ.
  • So với C++ hay Pascal, Python giúp học sinh rút ngắn thời gian viết code, tập trung nhiều hơn vào tư duy thuật toán.
  • Đặc biệt, xu hướng đề thi HSG Tin học cấp tỉnh giai đoạn 2026-2027 đang dần mở rộng ưu thế cho ngôn ngữ này.

2. Tài liệu ôn thi HSG Tin học tại Vi Tính Tân Dân bao gồm những nội dung gì?

Bộ tài liệu ôn thi HSG Tin học Tỉnh 2026-2027 được chia sẻ trong bài viết bao gồm:

  • Lộ trình học Python từ cơ bản đến nâng cao.

  • Tổng hợp các dạng thuật toán thường gặp trong đề thi cấp tỉnh.

  • 5 bí kíp “xương máu” để tối ưu hóa thời gian làm bài.

  • Ngân hàng bài tập thực hành có lời giải chi tiết.

3. 5 bí kíp chinh phục Python được nhắc đến là gì?

Trong bài viết, chúng tôi đi sâu vào 5 chiến thuật cốt lõi:

  1. Nắm vững các cấu trúc dữ liệu cơ bản (List, Dict, Set).

  2. Thành thạo các thư viện chuẩn (Math, Bisect, Collections).

  3. Kỹ năng tối ưu hóa độ phức tạp thuật toán (Time Complexity).

  4. Luyện đề thực chiến với các platform uy tín.

  5. Chiến thuật “vét điểm” thông minh trong phòng thi.

4. Người mới bắt đầu học lập trình có thể dùng bộ tài liệu này để thi HSG không?

  • Hoàn toàn có thể. Bộ tài liệu và các bí kíp được Vi Tính Tân Dân biên soạn phù hợp cho nhiều trình độ.
  • Nếu bạn là người mới, hãy bắt đầu từ phần “Lộ trình cơ bản” được đề cập trong bài để xây dựng nền tảng Python vững chắc trước khi đi vào giải thuật phức tạp.

5. Làm thế nào để tải tài liệu ôn thi HSG Tin học Python miễn phí?

  • Bạn có thể xem và tải trực tiếp các tài liệu, code mẫu và bài tập ôn luyện ngay tại liên kết bài viết này của Vi Tính Tân Dân.
  • Chúng tôi liên tục cập nhật các dạng đề mới nhất bám sát cấu trúc thi của Bộ Giáo dục cho năm học 2026-2027.

 

50 Đề thi học sinh giỏi Tin Học trên cả nước Việt Nam

Đề 1:  Đề THCS – Bà Rịa Vũng Tàu 2022 – 2023

Đề 2 thi học sinh giỏi lớp 9 môn Tin học – Tỉnh Bình Định năm 2022

50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam (Có đáp án và lời giải chi tiết)

Cập nhật mới nhất 2025:
Tổng hợp 50 đề thi học sinh giỏi môn Tin học lớp 9 và THCS của các tỉnh, thành phố trên cả nước Việt Nam, kèm lời giải chi tiết bằng Python hoặc Pascal. Bộ sưu tập này giúp học sinh ôn luyện toàn diện, chuẩn bị tốt nhất cho kỳ thi HSG cấp huyện, cấp tỉnh và thi vào lớp 10 chuyên Tin.


1. Giới thiệu bộ 50 đề thi Tin học trên cả nước

Môn Tin học là môn học đòi hỏi tư duy logic, kỹ năng lập trình và khả năng giải quyết vấn đề.
Bộ “50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam” được tổng hợp từ nhiều năm của các tỉnh như:
Hà Nội, TP. Hồ Chí Minh, Bình Định, Tiền Giang, Nghệ An, Đà Nẵng, Hải Phòng, Lâm Đồng, Cần Thơ, Thái Bình, Nam Định, Đồng Tháp,…

Mỗi đề đều gồm 5 bài lập trình, được sắp xếp từ dễ đến khó, giúp học sinh:

  • Ôn tập cấu trúc ngôn ngữ (Python hoặc Pascal)

  • Củng cố kỹ năng thuật toán cơ bản

  • Phát triển khả năng tư duy giải quyết bài toán thực tế


2. Nội dung và dạng bài thường gặp trong các đề thi

Sau khi tổng hợp 50 đề thi, có thể chia các dạng bài Tin học học sinh giỏi phổ biến như sau:

Dạng 1: Xử lý mảng 1 chiều

  • Tìm số lớn nhất, nhỏ nhất, tổng, trung bình, phần tử thỏa điều kiện.

  • Sắp xếp, đếm, lọc phần tử.
    Rèn kỹ năng duyệt mảng, sử dụng vòng lặp và điều kiện.

Dạng 2: Ma trận (mảng 2 chiều)

  • Tính tổng hàng, cột, đường chéo.

  • Xoay ma trận, phản chiếu, tìm phần tử đặc biệt.
    Kiểm tra khả năng làm việc với cấu trúc dữ liệu hai chiều.

Dạng 3: Xử lý chuỗi ký tự

  • Đếm từ, tách chữ, đếm nguyên âm – phụ âm.

  • Loại bỏ ký tự, viết hoa chữ cái đầu, so sánh chuỗi.
    Củng cố kỹ năng làm việc với string trong Python.

⚙️ Dạng 4: Thuật toán và quy hoạch động (Dynamic Programming)

  • Bài toán con ếch, chia kẹo, dãy con tăng dài nhất, ba lô,…
    Đòi hỏi tư duy phân tích và tối ưu thuật toán.

Dạng 5: Đồ thị và đường đi ngắn nhất

  • Duyệt đồ thị bằng DFS, BFS, tìm cây khung nhỏ nhất (Prim, Kruskal), hoặc đường đi ngắn nhất (Dijkstra, Floyd).
    Đây là phần khó, thường xuất hiện ở đề cấp tỉnh và chuyên Tin.


3. Lợi ích khi luyện 50 đề thi Tin học HSG

Học sinh khi luyện bộ đề này sẽ đạt được nhiều kỹ năng quan trọng:

Nắm chắc cấu trúc lập trình cơ bản: vòng lặp, điều kiện, hàm, mảng, chuỗi.
Hiểu rõ tư duy thuật toán: cách phân tích đề, chia bài toán nhỏ, tìm hướng tối ưu.
Làm quen với phong cách ra đề của các tỉnh – chuẩn bị tốt cho kỳ thi thật.
Tăng tốc độ lập trình và tư duy khi viết code.

Kết luận

Bộ 50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam là tài liệu không thể thiếu cho những ai đam mê lập trình và mong muốn đạt giải cao trong các kỳ thi học sinh giỏi.
Mỗi đề là một thử thách thú vị, giúp bạn nâng cao tư duy thuật toán, khả năng lập trình và tốc độ xử lý vấn đề.

Hãy tải về, luyện tập hằng ngày và chinh phục ước mơ trở thành học sinh chuyên Tin giỏi nhất!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)

 

2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án

2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án

SỞ GIÁO DỤC VÀ ĐÀO TẠO
TỈNH TIỀN GIANG
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH

TrUnG học Cơ Sở

Năm học 2023-2024
Môn thi: TIN HỌC

Thời gian làm bài: 150 phút, không kể thời gian phát đề
Ngày thi: 27/3/2024

ĐỀ THI CHÍNH THỨC
(Đề thi có 04 trang, gồm 05 bài)

[trustindex no-registration=google]

Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

  1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
  3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
  4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
  5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
  6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
  7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
  8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
  9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
  10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
TỔNG quan các bài thi

Thứ tựTên bàiFile chương trìnhFile dữ liệu vàoFile kết quả
1Tiền điệnELCOST.*ELCOST.INPELCOST.OUT
2Độ mạnh của xâuSTRONG.*STRONG.INPSTRONG.OUT
3Tổng dòng cộtSUM.*SUM.INPSUM.OUT
4Xâu lặpSUBSTR.*SUBSTR.INPSUBSTR.OUT
5Phần thưởngGIFT.*GIFT.INPGIFT.OUT

Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

 

Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.

Bài 1: Tiền điện (4,0 điểm) Tên chương trình: ELCOST.*

Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:

  • Bậc 1: 100 Kwh đầu tiên, có giá là 2500 đồng/Kwh
  • Bậc 2: Từ Kwh 101 đến 200, có giá là 3000 đồng/Kwh
  • Bậc 3: Từ Kwh 201 trở lên, có giá là 3500 đồng/Kwh

Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.

Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 104) là số lượng hộ gia đình.
  • Dòng 2: Chứa n số nguyên dương ai (1 < i < n, 1 < ai < 104), với mỗi ai là số Kwh sử dụng của hộ gia đình thứ i. Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.

Ví dụ:

ELCOST.INPELCOST.OUT
3

15 165 205

1050000

 

 

Giải thích:

Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205

Số tiền hộ thứ nhất: 15*2500 = 37500

Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000

Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500

Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000

Bài 2: Độ mạnh của xâu (4,0 điểm) Tên chương trình: STRONG.*

Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.

Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.

Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.

Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.

Ví dụ:

STRONG.INPSTRONG.OUT
xy11z2yyzxy0y30
ggggg__________________5

Giải thích:

Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.

Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.

Bài 3: Tổng dòng cột (4,0 điểm)  Tên chương trình: SUM.*

Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.

Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:

  • Dòng 1: Chứa hai số nguyên dương theo thứ tự là m, n (1 < m, n < 102). Giữa hai số cách nhau bởi một dấu cách.
  • m dòng tiếp theo, mỗi dòng chứa n số nguyên dương aij (0 < aij < 109). Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.

Ví dụ:

SUM.INPSUM.OUT
2 310
3 2 4
2 1 5

Giải thích: Ma trận b là 11 10 14 11 10 12

Nên giá trị nhỏ nhất trong ma trận b là 10.

Bài 4: Xâu lặp (4,0 điểm) Tên chương trình: SUBSTR.*

Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.

Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).

Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 103) là số lượng xâu.
  • n dòng tiếp theo, mỗi dòng chứa một xâu có độ dài không quá 103 kí tự.

Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.

Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.

Ví dụ:

SUBSTR.INPSUBSTR.OUT
4xyabach
xyxyxyxy
abcab
abacabac
hhh

 

 

Giải thích:

Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.

Bài 5: Phần thưởng (4,0 điểm)  Tên chương trình: GIFT.*

An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.

Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.

Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.

Ví dụ:

GIFT.INPGIFT.OUT
2 4 3 5 7 8 64
1 5 4 3 5 6 6 5 8 63

 

 

Giải thích:

Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)

Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

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

PDF Loading...

Đáp án bài 1: Tiền điện (ELCOST)

Ý tưởng tối ưu

  • Tính tiền theo từng mức giá:
    • 100 Kwh đầu tiên: 2500 đ/Kwh
    • 101 → 200 Kwh: 3000 đ/Kwh
    • 201 Kwh trở lên: 3500 đ/Kwh
  • Duyệt qua từng hộ gia đình, tính tổng tiền.

Code Python

import sys

sys.stdin = open("ELCOST.INP", "r")
sys.stdout = open("ELCOST.OUT", "w")

n = int(input().strip())
ds_kwh = list(map(int, input().split()))

tong_tien = 0
for so_kwh in ds_kwh:
    if so_kwh <= 100:
        tong_tien += so_kwh * 2500
    elif so_kwh <= 200:
        tong_tien += 100 * 2500 + (so_kwh - 100) * 3000
    else:
        tong_tien += 100 * 2500 + 100 * 3000 + (so_kwh - 200) * 3500

print(tong_tien)

Độ phức tạp: O(n).


Đáp án bài 2: Độ mạnh của xâu (STRONG)

Ý tưởng tối ưu

  • Sử dụng dictionary (hash map) để đếm số lần xuất hiện của từng ký tự.
  • Tìm số ký tự phân biệt (O(1) mỗi ký tự).
  • Tìm số lần xuất hiện nhiều nhất (O(1) mỗi lần cập nhật).

Code Python

 

import sys
from collections import Counter

sys.stdin = open("STRONG.INP", "r")
sys.stdout = open("STRONG.OUT", "w")

s = input().strip()
tan_suat = Counter(s)

so_ky_tu_phan_biet = len(tan_suat)
tan_suat_max = max(tan_suat.values())

print(so_ky_tu_phan_biet * tan_suat_max)

 

Độ phức tạp: O(n).


Đáp án bài 3: Tổng dòng cột (SUM)

Ý tưởng tối ưu

  • Tiền xử lý tổng hàng và tổng cột để tính giá trị của ma trận B trong O(1).
  • Duyệt nhanh để tìm giá trị nhỏ nhất.

Code Python

 

import sys

sys.stdin = open("SUM.INP", "r")
sys.stdout = open("SUM.OUT", "w")

m, n = map(int, input().split())
ma_tran = [list(map(int, input().split())) for _ in range(m)]

tong_dong = [sum(hang) for hang in ma_tran]
tong_cot = [sum(ma_tran[i][j] for i in range(m)) for j in range(n)]

gia_tri_nho_nhat = float('inf')
for i in range(m):
    for j in range(n):
        b_ij = tong_dong[i] + tong_cot[j] - ma_tran[i][j]
        gia_tri_nho_nhat = min(gia_tri_nho_nhat, b_ij)

print(gia_tri_nho_nhat)

 

Độ phức tạp: O(m × n).


Đáp án bài 4: Xâu lặp (SUBSTR)

Ý tưởng tối ưu

  • Duyệt từ 1 → len(s)//2 để tìm đoạn lặp ngắn nhất.
  • Kiểm tra nhanh bằng cách ghép đoạn lặp nhiều lần.

Code Python

import sys

sys.stdin = open("SUBSTR.INP", "r")
sys.stdout = open("SUBSTR.OUT", "w")

def tim_doan_dau(xau):
    n = len(xau)
    for do_dai in range(1, n + 1):
        if n % do_dai == 0 and xau == xau[:do_dai] * (n // do_dai):
            return xau[:do_dai]
    return xau

n = int(input().strip())
ket_qua = []
for _ in range(n):
    xau = input().strip()
    ket_qua.append(tim_doan_dau(xau))

print("".join(ket_qua))

Độ phức tạp: O(n²) trong trường hợp xấu nhất, nhưng thường nhanh hơn.


Đáp án bài 5: Phần thưởng (GIFT)

Ý tưởng tối ưu

  • Duyệt 1 lần qua danh sách để tìm dãy tăng dần dài nhất (O(n)).

Code Python

 

import sys

sys.stdin = open("GIFT.INP", "r")
sys.stdout = open("GIFT.OUT", "w")

phan_thuong = list(map(int, input().split()))

max_do_dai = 1
do_dai_hien_tai = 1

for i in range(1, len(phan_thuong)):
    if phan_thuong[i] > phan_thuong[i - 1]:
        do_dai_hien_tai += 1
    else:
        max_do_dai = max(max_do_dai, do_dai_hien_tai)
        do_dai_hien_tai = 1  

print(max(max_do_dai, do_dai_hien_tai))

 

Độ phức tạp: O(n).


Tóm tắt độ phức tạp

Bài toánTối ưu chínhĐộ phức tạp
ELCOSTDuyệt danh sách tính tiền nhanhO(n)
STRONGHash map để đếm tần suấtO(n)
SUMTiền xử lý tổng hàng/cộtO(m × n)
SUBSTRKiểm tra xâu lặp nhanhO(n²) (trường hợp xấu nhất)
GIFTDuyệt 1 lần để tìm dãy tăng dài nhấtO(n)

Tất cả các bài toán đều chạy tối ưu và có thể xử lý nhanh dữ liệu lớn!

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

19 Đề thi HSG Tin 9 C++ Python có đáp án 2024 – 2025

Rồi các em đã giải đến đề thứ 19 thi HSG Tin 9 C ++ hoặc Python là các em đã có nhiều kinh nghiệm để chuẩn bị thi cấp huyện cho tốt rồi! Các em nào chưa giải bắt đầu từ đề 1 các em nên giải từ đề 1 trước vì mình giải đề từ cơ bản đến nâng cao các em nhé! Chúc các em vượt qua kỳ thi và đạt được kết quả thật tốt các em nhé !

Đây đã là đề thi số 19 Đề thi học sinh giỏi Tin học THCS có đáp án 

  •  Các bạn bạn nào chưa giải tới thì vui lòng chọn lại bắt đầu từ Giải đề 1 các bạn nhé !
  • Vì từ thầy để các đề từ dễ đến nâng cao các bạn nhé! Mình mới vô đừng giải đề khó quá mà phải giải từ dễ trước từ từ sẽ giỏi lên từng ngày các bạn nhé!
  • Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
    1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
    4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
    5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
    6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
    7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
    8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
    9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
    10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
    11. Đề thi hsg tin 11 python có đáp án hay nhất 2024
    12. 12 đề và đáp án thi HSG tin Python có sắp xếp
    13. Đề 13 thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024.
    14. 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất !
    15. 15 Đề thi học sinh giỏi Tin học lớp 9 cấp huyện hay nhất 2024 – 2025
    16. 16 Đề bài tập Python có lời giải PDF thi HSG cấp huyện mới nhất
    17. 17 đề thi tin học trẻ có Đáp Án python THCS cấp huyện PDF
    18. 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025
    19. 19 thi HSG Tin 9 C ++ hoặc Python có đáp án
    20. 100 đề và đáp án thi HSG tin Python cấp huyện 2025

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Giải ngay đề 19 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2024 – 2025 !

TỔNG QUAN CÁC BÀI THI

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại cận thịD201.*D201.INPD201.OUT
Bài 2In những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến nD202.*D202.INPD202.OUT
Bài 3Đếm số lượng số trong mảng có tổng các ước là số lẻD203.*D203.INPD203.OUT
Bài 4Xóa các từ trùng lặp trong xâu sD204.*D204.INPD204.OUT
Bài 5Mã hóa xâu sD205.*D205.INPD205.OUT

Bài 1 ( 4 điểm ): Phân loại cận thị ?

  • Diễn giải:
    • Một robot AI được huấn luyện để làm nhiệm vụ phân loại mức độ cận thị của học sinh, người huấn luyện dựa vào số độ (Diop) được xác định bằng thiết bị chuyên dụng gắn trên robot. Dưới đây là phân loại mức độ cận thị:
    • Cận thị nhẹ: Độ cận dưới 3.0 Diop.
    • Cận thị trung bình: Độ cận từ 3.0 Diop đến dưới 6.0
    • Cận thị nặng: Độ cận từ 0 Diop dưới 10.0 Diop.
    • Cận thị cực đoan: Độ cận từ 10.00 Diop trở lên.
    • Nhập vào số độ cận thị của một người, hãy cho biết người này đang ở mức độ cận thị nào.
  • Input: Một số thực có giá trị từ 0 đến 10 mũ 2 cho biết giá trị của độ cận.
  • Output: Kết quả mức độ theo mô tả trên (không có dấu tiếng Việt, ký tự đầu tiên là chữ in hoa).
  • Ví dụ:

D201.INP

D201.OUT

1.75Can thi nhe
3.25Can thi trung bình

Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?

  • Diễn giải:
  • Nhập vào hai sổ nguyên m và n (m<=n). In những số nguyên tố mà đảo ngược của
  • sổ đó cũng lả số nguyên tố của các sổ nguyên từ m đến n
  • Input: Hai số nguyên dương m vả n (0<m, n<106), mỗi số trên một dòng.
  • Output: Những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố theo thứ tự từ m đến n, các số cách nhau một dấu cách.
  • Ví dụ:

Input

Output

11

15

11 13
2

13

2 3 5 7 11 13

 

Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?

  • Diễn giải:
    • Nhập vào một mảng a có n số nguyên: a0, a1, a2,…..an
    • Đếm số lượng số trong mảng có tổng các ước dương là số lẻ.
  • Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105
  • Output:
    • Số lượng số trong mảng có tổng các ước dương là số lẻ.
    • Nếu không có số nào có tổng các ước dương là số lẻ trong mảng thì in “-“
  • Ví dụ:
Input

Output

72
9
6
3
15
10
7
-2

 

 

51
7
3
6
0

 

Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Xóa các từ trùng lặp trong xâu s (giữ lại một từ).
  • Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Xâu s đã được xóa các từ trùng lặp.
  • Ví dụ:

Input

Output

Toi moi mua mot chiec PC moi, PC moi, that su rat moiToi moi mua mot chiec PC that su rat
Chiec PC moi chay that muotChiec PC moi chay that muot

 

Bài 5: (4 điểm) Mã hóa xâu s ?

  • Diễn giải:
    • Nhập vào một xâu s và một số tự nhiên k.
    • Mã hoá xâu s bằng cách đổi tất cả ký tự sang ký tự mới cách ký tự cũ k đon vị trong bảng mã ASCII
  • Input: Xâu s trên một dòng một, có độ dài không vượt quá 105, chứa các ký tự là chữ cái in hoa, chữ sổ, ký hiệu và các dấu cách. Dòng hai là sổ tự nhiên k (0<k<27)
  • Output: Kết quả xâu s đã được mã hoá
  • Ví dụ:
Input

Output

LAP TRINH

3

ODS#WULỌK
XIN CHAO, TOI LA MAY VI TINH 10bSX*MRKY6*AYS*VK*WKc*’S*Ã

 

Bài 1 ( 4 điểm ): Phân loại cận thị ?

 

import sys
sys.stdin=open('D201.INP','r')
sys.stdout=open('D201.OUT','w')
n=float(input())
if n<3.0:
    print('Can thi nhe')
if 3.0<=n<6.0:
    print('Can thi trung binh')
if 6.0<=n<10.0:
    print('Can thi nang')
if n>10.00:
    print('Can thi cuc doan')

 

Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?

 

import sys
sys.stdin=open('D202.INP','r')
sys.stdout=open('D202.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
def daonguoc(n):
    s=str(n)
    s=s[::-1]
    return int(s)
m=int(input())
n=int(input())
for i in range(m,n+1):
    if ktnt(i) and ktnt(daonguoc(i)):
        print(i,end=' ')

 

Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?

 

import sys
sys.stdin=open('D203.INP','r')
sys.stdout=open('D203.OUT','w')
def tonguoc(n):
    tong=0
    for i in range(1,n+1):
        if n%i==0:
            tong+=i
    return tong
n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
dem=0
for i in range(len(a)):
    if tonguoc(abs(a[i]))%2!=0:
        dem+=1
if dem==0:
    print('-')
else:
    print(dem)

 

Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?

 

import sys
sys.stdin=open('D204.INP','r')
sys.stdout=open('D204.OUT','w')
m=input().split()
n=sorted(set(m),key=m.index)
print(*n,sep=' ')

 

Bài 5: (4 điểm) Mã hóa xâu s ?

import sys
sys.stdin=open('D205.INP','r')
sys.stdout=open('D205.OUT','w')
def Mahoaxaus(s,k):
    tong=''
    for i in s:
        tong+=chr(ord(i)+k)
    return tong
s=input()
k=int(input())
ketqua=Mahoaxaus(s,k)
print(ketqua)

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

 

18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất 2025

Mến chào các em yêu thích môn lập trình Python! Để các em có thể chuẩn bị tốt cho kỳ thi học sinh giỏi cấp huyện sắp tới Thầy đã Tuyển tập Bộ đề thi học sinh giỏi trung học phổ thông môn Tin học. Trong đó có 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 để các em có thể dễ dàng ôn luyện để có thể dễ dàng thi đậu kỳ thi học sinh giỏi tin học cấp huyện sắp tới ! Chúc các em thành công !

Đây đã là đề thi số 18 Đề thi học sinh giỏi Tin học THCS có đáp án 

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Giải ngay đề 18 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 !

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại nguy cơ nhiễm CovidD191.*D191.INPD191.OUT
Bài 2ln số đảo ngược của các số nguyên từ m đến nD192.*D192.INPD192.OUT
Bài 3In các số có tổng chữ số là số chính phương trong mảngD193.*D193.INPD193.OUT
Bài 4Đếm số lần xuất hiện của một từ trong xâuD194.*D194.INPD194.OUT
Bài 5Tách các thành phần trong số điện thoại bànD195.*D195.INPD195.OUT

Bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?

  • Diễn giải: 
    • Để đánh giá nguy cơ dịch COVID-19, người ta dựa vào số lượng F0 được phát hiện hàng tuần trong cộng đồng.
    • Nhập vào số lượng F0 mới được phát hiện dương một xã (thị trấn) là một số nguyên n (0 < n < 105), hãy trả lời mức độ theo qui ước:
    • Nguy cơ thấp: 0 < n < 20
    • Nguy cơ trung bình: 20 <=n <50
    • Nguy cơ rất cao: 150 <=n
  • Input: Một số nguyên có giá trị từ 0 đến 10 mũ 5 cho biết giá trị của n.
  • Ouput: Kết quả theo mô tả trên.
  • Ví dụ:

 INPUT

OUTPUT

21Nguy co trung binh
63Nguy co cao

Bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • In số đảo ngược của các số nguyên từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<10 mũ 5 ), trên một dòng, cách nhau bởi dấu cách.
  • Output: Số đảo ngược của các số nguyên theo thứ tự từ m đến n, các số cách nhau một dấu cách.
  • Ví dụ:
InputOutput
11 1511 21 31 41 51
2 132 3 4 5 6 7 8 9 1 11 21 31

Bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?

  • Diễn giải:
    • Nhập vào một mảng a có n số nguyên: a0, a1, a2, …..an. In các số có tổng chữ số  số chính phương trong mảng theo thứ tự xuất hiện.
  • Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n sổ nguyên có giá trị tuyệt đối không vượt quá 10s.
  • Output:
    • Các có tổng chữ sổ là số chính phương trong mảng trên cùng một dòng, theo thứ tự xuất hiện, cách nhau bới dấu cách.
    • Nếu không có sổ có tổng chữ số là số chính phương nào trong mảng thì in dấu “-“
  • Ví dụ:

Input

Output

718 97 10 -31
18
61
97
8
10
17
-31

 

572 81 0 22
72
3
81
0
22

 

Bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?

  • Diễn giải:
    • Nhập vào một xâu s và một từ X.
    • Đếm số lần xuất hiện của X trong xâu s
  • Input:
    • Xâu s trên dòng một, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
    • Xâu X trên dòng hai là một từ chứa chữ cái với độ dài không vượt quá 10 mũ 2
  • Output: Số lần xuất hiện của từ X trong xâu.
  • Ví Dụ:
Input

Output

Toi moi mua mot chiec PC moi, PC moi, that su rat moi! moi4
Chiec PC moi chay that muot

ngon

0

Bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?

  • Diễn giải:
  • Nhập vào một chuỗi s là số điện thoại bàn đầy đủ. Tách các thành phần trong số điện thoại: mã quốc gia, mã vùng, số điện thoại chính.
  • Input: Chuỗi s trên một dòng, có độ dài không vượt quá 102, chứa các chữ cái, chữ số, và ký hiệu. Các thành phần phân tách nhau bởi dấu cách
  • Output: In mã quốc gia trên dòng một, mã vùng trên dòng hai và số điện thoại chính trên dòng ba
  • Ví dụ:
Input

Output

+1 212 5551234+1
212
5551234

 


+84 273 987654321+84
273
987654321

 

Đáp án bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?

 

import sys
sys.stdin=open('D191.INP','r')
sys.stdout=open('D191.OUT','w')
n=int(input())
if 0<=n<20:
    print('Nguy co thap')
elif 20<=n<50:
    print('Nguy co trung binh')
elif 50<=n<150:
    print('Nguy co cao')
elif 150<=n:
    print('Nguy co rat cao')

 

Đáp án bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?

 

import sys
sys.stdin=open('D192.INP','r')
sys.stdout=open('D192.OUT','w')
def daonguoc(n):
    s=str(n)
    s=s[::-1]
    return int(s)
m,n=map(int,input().split())
for i in range(m,n+1):
    print(daonguoc(i),end=' ')

 

Đáp án bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?

 

import sys,math
sys.stdin=open('D193.INP','r')
sys.stdout=open('D193.OUT','w')
def tcs(n):
    tong=0
    while n>0:
        tong+=n%10
        n=n//10
    return tong
def ktcp(n):
    if n<0:
        return False
    x=int(math.sqrt(n))
    return x*x==n
n=int(input())
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
            a.append(x)
        except ValueError:
            break
    except EOFError:
        break
dem=0
for i in range(len(a)):
    if ktcp(tcs(abs(a[i]))):
        dem+=1
        print(a[i],end=' ')
if dem==0:
    print('-')

 

Đáp án bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?

 

import sys
sys.stdin=open('D194.INP','r')
sys.stdout=open('D194.OUT','w')
s1=input()
s2=input()
print(s1.count(s2))

 

Đáp án bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?

 

import sys
sys.stdin=open('D195.INP','r')
sys.stdout=open('D195.OUT','w')
a=list(map(str,input().split()))
for i in range(len(a)):
    print(a[i])

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất

Để có thể thi đậu kỳ thi học sinh giỏi tin học sắp tới các em chỉ cần ” Cài Cuốc “ các dạng đề của thầy cho là có thể dễ dàng thi đậu điểm cao trong kỳ thi khó khăn và đầy thử thách phía trước! Để làm được điều đó các em phải giải hết 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất ! Thầy chúc tất cả các em điều đạt được kết quả tốt các em nhé ! Rồi hãy bắt tay vào giải ngay 14 đề bồi dưỡng học sinh giỏi tin học thôi nào!

Đây đã là đề thi số 14 Đề thi học sinh giỏi Tin học THCS có đáp án 

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Rồi còn chờ gì nữa hãy nhanh tay giải ngay đề 14  thi học sinh giỏi Tin Học Python cấp huyện !

Thứ tựTên bàiFile

chương

trình

File dữ liệu vàoFile kết quả
Bài 1Phân loại bằng lái xe hạng AD151.*D151.INPD151.0UT
Bài 2Tính tổng những số có tổng chữ số là số nguyên tố từ m đến nD152.*D152.INPD152.0UT
Bài 3Đếm số lượng số nguyên tố trong mảngD153.*D153.INPD153.0UT
Bài 4Tìm tên trong xâu họ và tênD154.*D154.INPD154.0UT
Bài 5Tách các thành phần trong địa chỉD155-*D155.INPD155.0UT

Bài 1: (4 điểm) Phân loại bằng lái xe hạng A ?

  • Diễn giải:
    1.  Bằng lái xe hạng A1: Người lái xe mô tô hai bánh có dung tích xy lanh từ 50 cm3 đến dưới 175 cm3.
    2. Bằng lái xe hạng A2: Người lái xe để điều khiển xe mô tô hai bánh có dung tích xy lanh từ 175 cm3 trở lên.
    3. Bằng lái xe hạng A3: Hạng A3 cấp cho người lái xe để điều khiển xe mô tô ba bánh.
  • Input: Hai số nguyên m,n trên một dòng, cách nhau bởi dấu cách, cho biết loại xe mấy bánh và dung tích xy lanh ( 2<=m<=3, 50<=n<500).
  • Output: Hạng của bằng lái xe
  • Ví dụ:
InputOutput
2 70A1
3 100A3

Bài 2: (4 điểm) Tính tổng những số có tổng chữ số là số nguyên tố từ m đến n ?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Tính tổng những số có tổng chữ số là số nguyên tố từ m đến n.
  • Input: Hai so nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
  • Output: Là tông những số có tổng chữ số là số nguyên tố từ m đến n.
  • Ví dụ:
InputOutput
11 1537
2 1340

Bài 3: ( 4 điểm ) Đếm số lượng số nguyên tố trong mảng ?

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: aO, al, a2, …. Đếm số lượng số nguyên tố trong mảng
  • Input: Mồi dòng một số nguyên có giá trị tuyệt đối không vượt quá 105.
  • Output: Số lượng số nguyên tố trong mảng.
  • Ví dụ:
InputOutput
92
6
3
8
10
7
-2
73
3
8
0
2

Bài 4: (4 điểm) Tìm tên trong xâu họ và tên ?

  • Diễn giải:
    • Nhập vào n xâu họ và tên. Tìm tên trong từng xâu đó
  • Input: Dòng một là số nguyên n (0<n<103). n dòng tiếp theo, mỗi dòng là một xâu họ và tên của một người, có độ dài không vượt quá 102, chứa các ký tự là chữ cái và các dấu cách.
  • Output: Tìm tên trong từng xâu họ và tên, in các tên theo thứ tự xuất hiện của input, mỗi tên một dòng
  •  Ví  dụ:

Input

Output

8Thinh
Pham Quoc ThinhPhat
Tran Minh PhatKhoa
Dinh Nguyen KhoaNhien
Hoang An NhienThanh
Mai Nguyen Tan ThanhAnh
Nguyen Hoai Minh AnhAnh
Vo Hoai AnhKhang
Tran Duy Khang

 

13Long
Tran Tien LongNam
Nguyen Huu NamPhat
Nguyen Minh PhatDung
Nguyen Tan DungDuy
Le Hoai Bao DuyAnh
Tran Ngoe Van AnhDuy
Nguyên Duc DuyPhuc
Pham Nguyên Thien PhucDang
Nguyên Minh DangLoc
Duong Phu LocSang
Pham Thanh SangVan
Nguyên Thi Bao VanMan
Le Nguyên Trieu Man

 

Bài 5: (4 điểm) Tách các thành phần trong địa chỉ ?

  • Diễn  giải:
    • Nhập vào một chuỗi s là địa chỉ gồm số nhà, tên đường, ấp, xà, huyện, tỉnh. Tách các phần trong địa chỉ
  • Input:
    • Chuỗi s trên một dòng, có độ dài không vượt quá 10 mũ 3,
    • Chứa các ký tự là chữ cái, chữ số, ký hiệu, mỗi thành phần được phân tách bởi dấu phẩy (,) theo thứ tự là số nhà, tên đường, ấp, xà, huyện, tỉnh.
  • Output: In các thành phần tách được trên từng dòng
  •  Ví dụ:

Input

Output

123/5, duong huyen 35, ap Vinh Thanh, xa Vinh Kim, huyen Chau Thanh, tinh Tien Giang123/5

duong huyen 35 ap Vinh Thanh xa Vinh Kim huy en Chau Thanh tình Tien Giang

5, duong Hoa Binh, ap Hanh Phuc, xa Vui Ve, huyen Niem No, tinh Khong Quau5

duong Hoa Binh ap Hanh Phuc xa Vui Ve huyen Niem No tinh Khong Quau

Đáp án bài 1: (4 điểm) Phân loại bằng lái xe hạng A ?

 

import sys
sys.stdin=open('D151.INP','r')
sys.stdout=open('D151.OUT','w')
m,n=map(int,input().split())
if m==2:
    if 50<=n<175:
        print('A1')
    elif n>175:
        print('A2')
else:
    print('A3')

 

Đáp án bài 2: (4 điểm) Tính tổng những số có tổng chữ số là số nguyên tố từ m đến n ?

 

import sys
sys.stdin=open('D152.INP','r')
sys.stdout=open('D152.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
def tcs(n):
    t=0
    while n>0:
        t+=n%10
        n//=10
    return t
m,n=map(int,input().split())
tong=0
for i in range(m,n+1):
    if ktnt(tcs(i)):
        tong+=i
print(tong)

 

Đáp án bài 3: ( 4 điểm ) Đếm số lượng số nguyên tố trong mảng ?

 

import sys
sys.stdin=open('D153.INP','r')
sys.stdout=open('D153.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
            a.append(x)
        except ValueError:
            break
    except EOFError:
        break
dem=0
for i in range(len(a)):
    if ktnt(a[i]):
        dem+=1
print(dem)

 

Đáp án bài 4: (4 điểm) Tìm tên trong xâu họ và tên ?

 

import sys
sys.stdin=open('D154.INP','r')
sys.stdout=open('D154.OUT','w')
n=int(input())
a=[]
for i in range(n):
    a.append(input())
b=[]
for i in range(len(a)):
    x=a[i].split()
    b.append(x[-1])
for i in range(len(b)):
    print(b[i])

 

Đáp án bài 5: (4 điểm) Tách các thành phần trong địa chỉ ?

 

import sys
sys.stdin=open('D155.INP','r')
sys.stdout=open('D155.OUT','w')
#Cách 1
n=input().split(',')
for i in n:
    print(i)

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

13 Đề thi học sinh giỏi Tin học THCS có đáp án hay nhất

Để giải được các đề thi học sinh giỏi Tin Học THCS các em cần phải giải thường xuyên các đề thi học sinh giỏi cấp huyện thì các em có thể nắm các dạng đề để chuẩn bị tốt nhất cho các kỳ thi sắp tới! cho nên thầy đã soạn ra hơn 13 Đề thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024.  Các em hãy xem các bài tập bên dưới ngay và tự giải nhé ! khi nào khó khăn quá hãy xem bài giải có đáp án phía dưới các em nhé !

Đây đã là đề thi số 13 Đề thi học sinh giỏi Tin học THCS có đáp án 

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

Rồi còn chờ gì nữa hãy nhanh tay giải ngay đề 13  thi học sinh giỏi Tin Học Python cấp huyện !

 

Thứ tựTên bàiFile

chương

trình

File dữ liệu vàoFile kết quả
Bài 1Phân loại đường dây điệnD141.*D141.INPD141.OUT
Bài 2In tổng chữ số của các số nguyên từ m đến nD142.*D142.INPD142.OUT
Bài 3In các số nguyên tố trong mảngD143.*D143.INPD143.OUT
Bài 4Tính tổng các chữ số có trong xâu sD144.*D144.INPD144.OUT
Bài 5Kiểm tra chuỗi s có phải là một địa chỉ emailD145.*D145.INPD145.OUT

 

Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C++

Bài 1: (4 điểm) Phân loại đường dây điện ?

  • Diễn giải:
    1. Cao thế: Điện áp từ 500 KV trở lên
    2. Trung thế: Điện áp từ 100 KV đến 499 KV
    3. Hạ thế: Điện áp dưới 100 KV
  • Input: Số nguyên X là điện áp đi qua của đường dây (0<=x<=5000)
  • Output: Loại theo mô tả trên
  • Ví dụ:
inputoutput
620Cao the
85Ha the

 

Bài 2: (4 điểm) In tổng chữ số của các số nguyên từ m đến n ?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • In ra tổng chữ số của các số nguyên từ m đến n
  • Input: Hai số nguyên dương m và n (0<m, n<106), mỗi số trên một dòng.
  • Output: Tổng chữ số của các số nguyên theo thứ tự từ m đến n, các số cách nhau một dấu cách.
  • Ví dụ:
InputOutput
11

15

2 3 4 5 6
2

13

2 3 4 5 6 7 8 9 1 2 3 4

Bài 3: (4 điểm) in các số nguyên tố trong mảng ?

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: ao, ai, &2, ….
    • In các số nguyên tố trong mảng theo thứ tự xuất hiện.
  • Input: Mỗi dòng một số nguyên có giá trị tuyệt đối không vượt quá 105.
  • Output: Các số nguyên tố trong mảng trên cùng một dòng, theo thứ tự xuất hiện, cách nhau bởi dấu cách. Nếu không có số nguyên tố nào trong mảng thì in “-“
  • Ví  dụ:

 

InputOutput
93 7
6
3
8
10
7
-2
77 3 2
3
8
0
2

Bài 4: (4 điểm) Tính tổng các chữ số có trong xâu s ?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Tính tổng các chữ số có trong xâu s
  • Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Tổng các chữ số có trong xâu s
  • Ví dụ:
InputOutput
Toi hoc LAP TRINH C++ tu nam 20248
Thi HOC SINH GIOI mon Tin Hoc vao thang 02 nam 202410

Bài 5: (4 điểm) Kiểm tra chuỗi s có phải là một địa chỉ email ?

Diễn giải:

Nhập vào một chuỗi s. Kiểm tra xem chuỗi s có phải là một địa chỉ email, một chuỗi s là email hợp lệ khi:

  • Bắt đầu bằng một chữ cái.
  • Chứa ít nhất một chữ cái, một chữ số, một dấu chấm (.)
  • Chứa đúng một dấu @.
  • Sau dấu @ là một tên miền (có ít nhất một dấu chấm nam giữa tên miền).

Input: Chuỗi s trên một dòng, có độ dài không vượt quá 10 mủ 2, chứa các ký tự là chữ cái, chữ số, ký hiệu, và các dấu cách.

Output: In “Yes” nếu s là một địa chỉ email hợp lệ, ngược lại là “No”

Input

Output

TranPhiAnBinh.TienGiang63@gmail.comYes
123TranPhiAnBinh.TienGiang63@gmail.comNo
TranPhiAnBinh.TienGiang63gmail.@comNo

Đáp án bài 1: (4 điểm) Phân loại đường dây điện ?

 

import sys
sys.stdin=open('D141.INP','r')
sys.stdout=open('D141.OUT','w')
n=int(input())
if n>500:
    print('Cao the')
elif 100<=n<=499:
    print('Trung the')
elif n<100:
    print('Ha the')

 

Đáp án bài 2: (4 điểm) In tổng chữ số của các số nguyên từ m đến n ?

 

import sys
sys.stdin=open('D142.INP','r')
sys.stdout=open('D142.OUT','w')
def tcs(n):
    t=0
    while n>0:
        t+=n%10
        n//=10
    return t
m=int(input())
n=int(input())
for i in range(m,n+1):
    print(tcs(i),end=' ')

 

Đáp án bài 3: (4 điểm) in các số nguyên tố trong mảng ?

 

import sys
sys.stdin=open('D143.INP','r')
sys.stdout=open('D143.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
            a.append(x)
        except ValueError:
            break
    except EOFError:
        break
dem=0
for i in range(len(a)):
    if ktnt(a[i]):
        dem+=1
        print(a[i],end=' ')
if dem==0:
    print('-')

 

Đáp án bài 4: (4 điểm) Tính tổng các chữ số có trong xâu s ?

 

import sys
sys.stdin=open('D144.INP','r')
sys.stdout=open('D144.OUT','w')
n=input()
a=list(n)
tong=0
for i in n:
    if i.isdigit():
        tong+=int(i)
print(tong)

 

Đáp án bài 5: (4 điểm) Kiểm tra chuỗi s có phải là một địa chỉ email ?

 

import sys
sys.stdin=open('D145.INP','r')
sys.stdout=open('D145.OUT','w')
s=input()
dk1=0
if s[0].isalpha():
    dk1=1
dk2=0
dk21=dk1
dk22=0
dk23=0
for i in range(len(s)):
    if s[i].isnumeric():
        dk22=1
        break
for i in range(len(s)):
    if s[i]=='.':
        dk23=1
        break
if dk21==1 and dk22==1 and dk23==1:
    dk2=1
dk3=0
if s.count('@')==1:
    dk3=1
vt=s.find('@')
dk4=0
for i in range(vt,len(s)):
    if s[i]=='.':
        dk4=1
dk5=1
if (not s[vt-1].isalnum()) or (not s[vt+1].isalnum()):
    dk5=0
if dk1==1 and dk2==1 and dk3==1 and dk4==1 and dk5==1:
    print('Yes')
else:
    print('No')

 

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

10 đề thi tin học trẻ THPT có đáp án và tài liệu hay nhất 2024

Đến hẹn lại lên hôm nay thầy ra tiếp đề 10 thi tin học trẻ THPT có đáp án và tài liệu hay nhất 2024 để các em dễ dàng tham khảo và thi thử chuẩn bị cho kỳ thi học sinh giỏi tin học sắp tới nhé !

Đây đã là đề thi thứ 10 chuyên dùng để bồi dưỡng học sinh giỏi Tin học lớp 9

    1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học 

Nguồn: 300bàicode.vn

Đề 10 thi tin học trẻ THPT có đáp án và tài liệu

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại hạng cân trong thi đấu võ thuậtD111.*D111.INPD111.OUT
Bài 2Tính trung bình cộng những số nguyên tố từ m đến nD112.*D112.INPD112.0UT
Bài 3Tìm số âm nhỏ nhất trong mảng và vị tríD113.*D113.INPD113.0UT
Bài 4Đếm số lượng ký hiệu trong xâu sD114.*D114.INPD114.0UT
Bài 5In các xâu con trong xâu sD115.*D115.1NPD115.0UT

Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là ngôn ngữ Python hoặc C++

Bài 1: (4 điểm) Phân loại hạng cân trong thi đấu võ thuật ?

  • Diễn giải:
    1. Flyweight: Dưới 58 kg
    2. Bantamweight: Từ 58 kg đến dưới 68 kg
    3. Featherweight: Từ 68 kg đến dưới 80 kg
    4. Light Heavyweight: Từ 80 kg đến 90 kg
    5. Heavyweight: Trên 90 kg
  • Input: Số nguyên X là cân nặng của đấu thủ (0<x<=200).
  • Output: Loại theo mô tả trên
  • Ví dụ về input và output:
inputoutput
49Flyweight
75Featherweight

Bài 2: (4 điểm) Tính trung bình cộng những số nguyên tố từ m đến n?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Tính trung bình cộng các số nguyên tố từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
  • Output: Là trung bình cộng các số nguyên tố từ m đến n, làm tròn đến một chữ số thập phân.
  • Ví dụ:
INPUT

OUTPUT

11 1512.0
2 136.8

Bài 3: (4 điểm) Tìm số âm nhỏ nhất trong mảng và vị trí?

  • Diễn Giải:
    • Nhập vào một mảng số nguyên a: ao, ai, a2,….
    • Tìm số âm nhỏ nhất trong mảng.
  • Input:
    • Một dòng chứa các số nguyên có giá trị tuyệt đối không vượt quá 10 cách nhau bởi dấu cách.
  • Output:
    • Dòng một là số âm nhỏ nhất trong mảng,
    • Dòng hai là vị trí của số âm nhỏ nhất.
    • Nếu không có số âm nào trong mảng thì in “-“
  • Ví dụ:
InputOutput
9 -6 3 8 10 -7 -2-7

5

7 3 8 0 2

Bài 4: (4 điểm) Đếm số lượng ký hiệu trong xâu s?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Đếm số lượng ký hiệu trong xâu s
  • Input:
      • Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Số lượng ký hiệu trong xâu s (không tính dấu cách)
  • Ví dụ:

Input

Output

Toi hoc LAP TRINH C++ tu nam 20242
Thi HOC SINH GIOI mon Tin Hoc vao thang 02/20241

Bài 5: (4 điểm) In các xâu con trong xâu s?

  • Diễn giải:
    • Nhập vào một xâu s. In các xâu con trong xâu s
  • Input:
    • Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: In các xâu con trong xâu s, mỗi xâu con trên một dòng
  • Ví Dụ:
InputOutput
123451
12
123
1234
12345
2
23
234
2345
3

34

345
4

45

5

 

abeda
ab
abc
abed
b
be
bed
c
cd
d

Đáp án bài 1:  Phân loại hạng cân trong thi đấu võ thuật

 

import sys
sys.stdin=open('D111.INP','r')
sys.stdout=open('D111.OUT','w')
n=int(input())
if n<58:
    print('Flyweight')
elif 58<=n<68:
    print('Bantamweight')
elif 68<=n<80:
    print('Featherweight')
elif 80<n<90:
    print('Light Heavyweight')
elif n>90:
    print('Heavyweight')

 

Đáp án bài 2:  Tính trung bình cộng những số nguyên tố từ m đến n?

 

import sys
sys.stdin=open('D112.INP','r')
sys.stdout=open('D112.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
m,n=map(int,input().split())
dem=0
tong=0
for i in range(m,n+1):
    if ktnt(i):
        dem+=1
        tong+=i
tbc=0
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)

 

Đáp án bài 3:  Tìm số âm nhỏ nhất trong mảng và vị trí?

 

import sys
sys.stdin=open('D113.INP','r')
sys.stdout=open('D113.OUT','w')
a=list(map(int,input().split()))
b=[]
for i in range(len(a)):
    if a[i]<0:
        b.append(a[i])
if len(b)>0:
    M=min(b)
    for i in range(len(a)):
        if a[i]==M:
            vt=i
            break
    print(M)
    print(vt)
else:
    print('-')

 

Đáp án bài 4:  Đếm số lượng ký hiệu trong xâu s?

 

import sys
sys.stdin=open('D114.INP','r')
sys.stdout=open('D114.OUT','w')
s=input()
s=s.replace(' ','')
so=0
chu=0
kytu=0
for i in range(len(s)):
    if s[i].isdigit():
        so+=1
    elif s[i].isalpha():
        chu+=1
    else:
        kytu+=1
print(kytu)

 

Đáp án bài 5:  In các xâu con trong xâu s

 

import sys
sys.stdin=open('D115.INP','r')
sys.stdout=open('D115.OUT','w')
def inxauconne(n):
    a=[]
    for i in range(len(n)):
        for j in range(i+1,len(n)+1):
            a.append(n[i:j])
    return a
def inranao(n):
    s=inxauconne(n)
    for i in range(len(s)):
        print(s[i])
s=input()
inranao(s)

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

9 đề thi HSG Tin 8 lập trình Python có đáp án năm 2024

Thầy rất đam mê và rất thích lập trình từ rất lâu ! Nên thầy muốn chia sẻ niềm đam mê của thầy với các em nên thầy đã soạn ra đề 9 thi HSG Tin học lớp 8 lập trình Python trong 20 đề ôn thi bồi dưỡng thi học sinh giỏi cấp huyện và tỉnh

Đây đã là đề thi thứ 09 chuyên dùng để bồi dưỡng học sinh giỏi Tin học lớp 8

    1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học 

Nguồn: 300bàicode.vn

Đề 9 thi HSG Tin 8 lập trình Python mới nhất năm 2024

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại chất lượng sản phẩmD101.*DI01.INPDI 01. OUT
Bài 2Tính tổng những số nguyên tố từ m đến nD102.*D102.INPD102.OUT
Bài 3Tính trung bình cộng các số âmD103.*D103.INPD103.OUT
Bài 4Đếm số lượng chữ số trong xâu sD104.*D104.INPD104.OUT
Bài 5Đếm xem có bao nhiêu số Happy từ m đến nD105.*D105.INPDI 05.OUT

Bài 1: (4 điểm) Phân loại chất lượng sản phẩm

  • Diễn giải: 
    1. *****: Từ 85 đến 100
    2. ****: Từ 70 đến dưới 85
    3. ***: Từ 55 đến dưới 70
    4. **: Từ 40 đến dưới 55
    5. *: Dưới 40
  • Input: Số nguyên X là điềm (0<=x<=100).
  • Output: Loại theo mô tả trên
  • Ví dụ:
inputoutput
30*
75* ***

 

Bài 2: (4 điểm) Tính tổng những số nguyên tố từ m đến n

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Tính tổng các số nguyên tố từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<106), mỗi số trên một dòng.
  • Output: Là tổng các số nguyên tố từ m đến n.
  • Ví dụ:
InputOutput
11

15

24
2

13

41

Bài 3: (4 điểm) Tính trung bình cộng các số âm trong mảng

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: a0,a1,a2, ….
    • Tính trung bình cộng các số âm trong mảng.
  • Input: Một dòng chứa các số nguyên có giá trị tuyệt đối không vượt quá 105, cách nhau bởi dấu cách.
  • Output:
    • Là trung bình cộng các số âm trong mảng, làm tròn đến một chữ số thập phân.
    • Nếu không có số âm nào trong mạng thì in “0.0”
  • Ví dụ:
InputOutput
9 -6 3 8 10 -7 -2-5.0
738020.0

 

Bài 4: (4 điểm) Đếm số lượng chữ số trong xâu s

  • Diễn giải:
    • Nhập vào một xâu s.
    • Đếm số lượng chữ số trong xâu s
  • Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Số lượng chữ số trong xâu s
  • Ví dụ:
Input

Output

Toi hoc LAP TRINH C++ tu nam 20244
Thi HOC SINH GIOI mon Tin Hoc vao thang 02/20246

Bài 5: (4 điểm)  Liệt kê các số Happy từ m đến n

số Happy

số Happy

  • Input: Hai số nguyên m, n (0<m<=n<109), mỗi số trên một dòng
  • Output:
    • Các số Happy từ m đến n theo thứ tự từ bé đến lớn, các số cách nhau bởi dấu cách.
    • Nếu không có số Happy nào từ m đến n thì in -1
  • Ví dụ:
InputOutput
2

11

7 10
50

100

68 70 79 82 86 91 94 97 100

 

Đáp án bài 1:  Phân loại chất lượng sản phẩm

 

import sys
sys.stdin=open('D101.INP','r')
sys.stdout=open('D101.OUT','w')
n=int(input())
if 85<=n<=100:
    print('*****')
elif 70<=n<85:
    print('****')
elif 55<=n<70:
    print('***')
elif 40<=n<55:
    print('**')
elif n<40:
    print('*')

 

Đáp án bài 2:  Tính tổng những số nguyên tố từ m đến n

 

import sys
sys.stdin=open('D102.INP','r')
sys.stdout=open('D102.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
m=int(input())
n=int(input())
tong=0
for i in range(m,n+1):
    if ktnt(i):
        tong+=i
print(tong)

 

Đáp án bài 3:  Tính trung bình cộng các số âm trong mảng

 

import sys
sys.stdin=open('D103.INP','r')
sys.stdout=open('D103.OUT','w')
a=list(map(int,input().split()))
tong=0
dem=0
for i in range(len(a)):
    if a[i]<0:
        tong+=a[i]
        dem+=1
tbc=0
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)
else:
    print('0.0')

 

Đáp án bài 4: Đếm số lượng chữ số trong xâu s

 

import sys
sys.stdin=open('D104.INP','r')
sys.stdout=open('D104.OUT','w')
s=input()
dem=0
for i in range(len(s)):
    if s[i].isdigit():
        dem+=1
print(dem)

 

Đáp án bài 5:  Đếm xem có bao nhiêu số Happy từ m đến n

 

import sys
sys.stdin=open('D105.INP','r')
sys.stdout=open("D105.OUT",'w')
def tcs(n):
    a=str(n)
    t=0
    for i in range(len(a)):
        t+=int(a[i])**2
    return t
def Happy(n):
    b=[]
    while not n in b:
        b.append(n)
        n=tcs(n)
    for i in range(len(b)):
        if b[i]==1:
           return True
def in_so(m,n):
    dem=0
    c=[]
    for i in range(m,n+1):
        if Happy(i):
            dem+=1
            c.append(i)
    if dem==0:
        print('-1')
    else:
        for i in range(len(c)):
            print(c[i],end=' ')
m=int(input())
n=int(input())
in_so(m,n)

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !