Nếu bạn đang ôn thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang, đặc biệt là thi lập trình Python, thì bài viết này sinh ra là dành cho bạn.
Trong bài này, Vi Tính Tân Dân đã tổng hợp 73 đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang, kèm đáp án – code giải chi tiết – giải thích thuật toán rõ ràng, bám sát đúng cấu trúc đề thi thực tế của Sở GD&ĐT Tiền Giang.
👉 Phù hợp cho:
Học sinh lớp 6 – 9 ôn thi HSG Tin học
Học sinh luyện thi vào lớp 10 chuyên Tin
Giáo viên, phụ huynh bồi dưỡng học sinh năng khiếu Tin học

🎯 Vì sao nên luyện bộ 73 đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang này?
Không giống các bộ đề tràn lan trên mạng, bộ đề này được chọn lọc kỹ, đảm bảo:
✅ Đúng chuẩn đề thi Tin học THCS cấp tỉnh Tiền Giang
✅ Ngôn ngữ Python – đúng yêu cầu thi thực tế
✅ Có đáp án + code mẫu
✅ Giải thích tư duy thuật toán, không chỉ cho code
✅ Từ dễ → trung bình → khó, giúp nâng trình rõ rệt
👉 Rất nhiều học sinh học Python nhưng không biết ra đề thi thật trông như thế nào. Bộ đề này giúp bạn làm quen đề chuẩn – tránh bỡ ngỡ khi đi thi.
📚 Nội dung chính trong 73 đề thi HSG Tin học Python THCS
Bộ đề bao phủ toàn bộ kiến thức trọng tâm thường ra trong các kỳ thi HSG Tin học cấp tỉnh:
🔹 1. Xử lý số & toán học trong Python
- Đọc số nguyên x từ file NUM.INP.
- Duyệt hai số a và b trong phạm vi [1, x], đảm bảo a ≤ b.
- Kiểm tra điều kiện a * b == x và a / b ≥ 0.5.
- Nếu tìm thấy cặp (a, b) thỏa mãn, gán la_ket_doi = 1 và dừng vòng lặp.
- Ghi kết quả 1 vào NUM.OUT nếu x là số kết đôi, ngược lại ghi 0.
🔹 2. Xử lý ngày tháng năm
- Đọc dữ liệu từ file CUP.INP, bao gồm:
- Ngày hiện tại (định dạng dd.mm.yyyy).
- Số ngày cần cộng thêm.
- Chuyển đổi ngày hiện tại thành kiểu datetime.
- Cộng thêm số ngày vào ngày hiện tại bằng timedelta(days=so_ngay_them).
- Xuất kết quả với định dạng dd.mm.yyyy ra file CUP.OUT.
🔹 3. Chuỗi ký tự (String)
- Đọc dữ liệu từ file PART.INP, gồm:
- n, L, R: số phần tử của mảng và khoảng cần kiểm tra.
- Mảng a chứa n số nguyên.
- Duyệt qua từng phần tử a[i] của mảng:
- Xét các chỉ số j trong phạm vi [i+L, i+R].
- Nếu a[i] == a[j] + a[j-1], tăng biến đếm và dừng kiểm tra tiếp theo.
- Xuất kết quả ra file PART.OUT.
🔹 4. Xử lý Xâu
- Đọc dữ liệu từ file PW.INP:
- Số nguyên n là số xâu.
- n xâu ký tự chứa chỉ các chữ cái thường (a-z).
Sắp xếp các xâu theo độ dài tăng dần.
Duyệt từng xâu trong danh sách:
- Kiểm tra xem xâu đó có chứa tất cả các xâu khác hay không.
- Nếu có, in ra xâu đó và dừng lại.
Nếu không có xâu nào phù hợp, in -1.
🔹 5. Thuật toán cơ bản – nâng cao
- Đọc dữ liệu từ COVID.INP:
- n: số người trên đường.
- a: danh sách tọa độ của n người.
- Sắp xếp danh sách tọa độ theo thứ tự tăng dần.
- Tính toán khoảng cách giữa các vị trí:
- Khoảng cách nhỏ nhất giữa hai người gần nhau nhất.
- Khoảng cách lớn nhất giữa người đầu và người cuối.
- Tính số nhóm nhiễm bệnh dựa trên khoảng cách:
- Tối thiểu: nếu khoảng cách nhỏ nhất là d, thì nhóm nhiễm bệnh sẽ là (d // 2) + 1.
- Tối đa: nếu khoảng cách lớn nhất là D, thì nhóm nhiễm bệnh sẽ là (D // 2) + 1.
- In kết quả.
🧠 Có gì trong phần ĐÁP ÁN & CODE GIẢI?
Điểm mạnh nhất của bộ tài liệu này là không chỉ có đáp án, mà còn:
✔️ Code Python rõ ràng – đúng chuẩn thi
✔️ Có import sys, đọc ghi file đúng format đề tỉnh
✔️ Giải thích từng bước tư duy
✔️ Phân tích độ phức tạp thuật toán
✔️ Chú thích bằng tiếng Việt dễ hiểu cho học sinh THCS
👉 Phù hợp cả với:
🏆 Lợi ích khi luyện trọn bộ 73 đề này
📌 Nắm chắc cấu trúc đề thi HSG Tin học tỉnh Tiền Giang
📌 Tăng khả năng tư duy thuật toán – không học vẹt
📌 Làm quen cách trình bày code đúng chuẩn chấm thi
📌 Tự tin khi bước vào kỳ thi chính thức
📌 Rút ngắn rất nhiều thời gian ôn tập
👉 Rất nhiều học sinh từng đạt giải cấp huyện – cấp tỉnh đã luyện theo đúng dạng đề như trong bộ này.
👨🏫 Ai nên sử dụng bộ đề này?
✔️ Học sinh THCS yêu thích Tin học
✔️ Học sinh đang học Python để thi HSG
✔️ Học sinh ôn thi vào lớp 10 chuyên Tin
✔️ Giáo viên Tin học THCS
✔️ Trung tâm bồi dưỡng học sinh giỏi Tin học
🚀 Kết luận
Bộ 73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN là tài liệu cực kỳ giá trị nếu bạn đang nghiêm túc theo đuổi con đường học sinh giỏi Tin học.
👉 Nếu bạn muốn:
Học đúng trọng tâm
Luyện đúng dạng đề
Hiểu bản chất thuật toán
👉 Đừng bỏ qua bộ đề này.
📌 Theo dõi vitinhtandan.com để cập nhật thêm:
ĐÁP ÁN CÂU 1: Số Kết Đôi
import sys
sys.stdin = open("NUM.INP", "r")
sys.stdout = open("NUM.OUT", "w")
# Doc so x
x = int(sys.stdin.readline().strip())
# Kiem tra so ket doi
la_ket_doi = 0
for a in range(1, x + 1):
for b in range(a, x + 1):
if a * b == x and a / b >= 0.5:
la_ket_doi = 1
break
if la_ket_doi:
break
# Ghi ket qua
print(la_ket_doi)
1️⃣ Ý tưởng thuật toán
Ta cần kiểm tra số nguyên dương x có tồn tại hai số nguyên dương a, b sao cho:
Nếu tồn tại ít nhất một cặp (a, b) thỏa mãn thì x là số kết đôi → in 1, ngược lại in 0.
2️⃣ Phân tích từng bước chương trình
🔹 Bước 1: Đọc dữ liệu
Đọc số nguyên dương x từ file NUM.INP.
🔹 Bước 2: Duyệt các cặp (a, b)
🔹 Bước 3: Kiểm tra điều kiện số kết đôi
👉 Nếu thỏa mãn:
🔹 Bước 4: Xuất kết quả
3️⃣ Độ phức tạp thuật toán
⏱️ Thời gian chạy
👉 Trường hợp xấu nhất:
O(x^2)
💾 Bộ nhớ sử dụng
Chỉ dùng vài biến đơn giản (x, a, b, la_ket_doi)
Không dùng mảng hay cấu trúc phức tạp
👉 Độ phức tạp bộ nhớ:
O(1)
4️⃣ Nhận xét theo góc nhìn bài thi
✔️ Thuật toán:
⚠️ Nhược điểm:
👉 Trong bài thi nâng cao, có thể tối ưu bằng cách chỉ duyệt đến √x, nhưng đáp án này hoàn toàn hợp lệ nếu đề không yêu cầu tối ưu.
ĐÁP ÁN CÂU 2: Word Cup
import sys
from datetime import datetime, timedelta
sys.stdin = open("CUP.INP", "r")
sys.stdout = open("CUP.OUT", "w")
# Doc du lieu
ngay_hien_tai = sys.stdin.readline().strip()
so_ngay_them = int(sys.stdin.readline().strip())
# Chuyen doi ngay thanh doi tuong datetime
ngay_hien_tai = datetime.strptime(ngay_hien_tai, "%d.%m.%Y")
# Cong them so ngay
ngay_tuong_lai = ngay_hien_tai + timedelta(days=so_ngay_them)
# In ket qua theo dinh dang dd.mm.yyyy
print(ngay_tuong_lai.strftime("%d.%m.%Y"))
1️⃣ Ý tưởng thuật toán
Bài toán yêu cầu:
Cho một ngày hiện tại (định dạng dd.mm.yyyy)
Cho số ngày cần cộng thêm
Tính và in ra ngày tương lai sau khi cộng số ngày đó
👉 Đây là bài toán xử lý ngày tháng, cần xét đúng:
➡️ Ta sử dụng thư viện datetime của Python để xử lý chính xác và gọn nhẹ.
2️⃣ Phân tích từng bước chương trình
🔹 Bước 1: Đọc dữ liệu vào
🔹 Bước 2: Chuyển chuỗi ngày sang kiểu datetime
➡️ Sau bước này, Python hiểu đúng cấu trúc ngày tháng, kể cả năm nhuận.
🔹 Bước 3: Cộng thêm số ngày
➡️ Không cần tự viết kiểm tra ngày/tháng phức tạp.
🔹 Bước 4: In kết quả đúng định dạng
3️⃣ Độ phức tạp thuật toán
⏱️ Thời gian chạy
Đọc dữ liệu: O(1)
Chuyển đổi ngày: O(1)
Cộng ngày: O(1)
In kết quả: O(1)
👉 Tổng thời gian chạy:
O(1)
💾 Bộ nhớ sử dụng
👉 Độ phức tạp bộ nhớ:
O(1)
4️⃣ Nhận xét theo chuẩn bài thi
✔️ Ưu điểm:
Code ngắn gọn
Chính xác tuyệt đối (kể cả năm nhuận)
Tránh lỗi khi xử lý ngày/tháng
Rất phù hợp bài thi HSG THCS
⚠️ Lưu ý:
Cách làm này phụ thuộc thư viện datetime
Nếu đề cấm dùng thư viện, phải tự xử lý ngày tháng (phức tạp hơn)
ĐÁP ÁN CÂU 3: Phần Tử Điển Hình
import sys
sys.stdin = open("PART.INP", "r")
sys.stdout = open("PART.OUT", "w")
# Doc du lieu
n, L, R = map(int, sys.stdin.readline().split())
a = list(map(int, sys.stdin.readline().split()))
# Dem so phan tu dien hinh
dem = 0
for i in range(n):
for j in range(i + L, min(i + R + 1, n)): # Xet cac khoang tu L den R
if a[i] == a[j] + a[j - 1]:
dem += 1
break # Neu da la phan tu dien hinh thi khong xet tiep
# In ket qua
print(dem)
1️⃣ Ý tưởng thuật toán
Bài toán cho:
Số phần tử n
Hai số nguyên L, R
Mảng số nguyên a[0…n-1]
Một phần tử điển hình tại vị trí i là phần tử thỏa mãn:
∃ j sao cho i+L≤j≤i+R vaˋ a[i]=a[j]+a[j−1]\exists\ j \ \text{sao cho} \ i + L \le j \le i + R \ \text{và} \ a[i] = a[j] + a[j-1]∃ j sao cho i+L≤j≤i+R vaˋ a[i]=a[j]+a[j−1]
👉 Nhiệm vụ: đếm số phần tử điển hình trong mảng.
2️⃣ Phân tích từng bước chương trình
🔹 Bước 1: Đọc dữ liệu
🔹 Bước 2: Khởi tạo biến đếm
Biến dem dùng để đếm số phần tử điển hình.
🔹 Bước 3: Duyệt từng phần tử a[i]
Xét từng vị trí i trong mảng làm ứng viên phần tử điển hình.
🔹 Bước 4: Duyệt các chỉ số j phù hợp
👉 Đảm bảo đúng điều kiện đề bài.
🔹 Bước 5: Kiểm tra điều kiện điển hình
Nếu tồn tại ít nhất một j thỏa mãn thì:
🔹 Bước 6: In kết quả
In ra số lượng phần tử điển hình tìm được.
3️⃣ Độ phức tạp thuật toán
⏱️ Thời gian chạy
👉 Trường hợp xấu nhất:
O(n×(R−L))\boxed{O(n \times (R – L))}O(n×(R−L))
Nếu R − L gần n:
O(n2)
💾 Bộ nhớ sử dụng
Mảng a kích thước n
Một vài biến đơn giản
👉 Độ phức tạp bộ nhớ:
O(n)
4️⃣ Nhận xét theo chuẩn bài thi
✔️ Ưu điểm:
⚠️ Nhược điểm:
👉 Tuy nhiên, rất phù hợp với đề HSG THCS nếu không yêu cầu tối ưu cao.
5️⃣ Gợi ý nâng cao (không bắt buộc)
ĐÁP ÁN CÂU 4: Đặt Lại Mật Khẩu
📌 Ví dụ trong đề
Input
Một output hợp lệ
✔ So với abac → khác 1 vị trí
✔ So với zbab → khác 1 vị trí
🎯 Ghi nhớ để đi thi
Đây là bài sinh – kiểm tra, không phải DP
Mẹo quan trọng: neo theo 1 xâu
Rất hay ra trong đề HSG / chuyên Tin
import sys
sys.stdin = open("PW.INP", "r")
sys.stdout = open("PW.OUT", "w")
# Đọc n và m
n, m = map(int, sys.stdin.readline().split())
# Đọc các xâu
S = [sys.stdin.readline().strip() for _ in range(n)]
# Xâu gốc
base = S[0]
# Hàm kiểm tra xâu P có hợp lệ không
def hop_le(P):
for s in S:
dem = 0
for i in range(m):
if s[i] != P[i]:
dem += 1
if dem > 1:
return False
return True
# Thử xâu base trước
if hop_le(base):
print(base)
sys.exit()
# Thử thay đổi từng vị trí
for i in range(m):
for c in range(ord('a'), ord('z') + 1):
if chr(c) != base[i]:
P = base[:i] + chr(c) + base[i+1:]
if hop_le(P):
print(P)
sys.exit()
# Không có lời giải
print(-1)
🔍 Phân tích đề bài (hiểu cho đúng)
👉 Với mỗi xâu Si, số vị trí khác nhau giữa Si và P KHÔNG QUÁ 1
Tức là:
P giống hoàn toàn Si (0 vị trí khác) ✅
hoặc chỉ khác đúng 1 vị trí ✅
nếu khác ≥ 2 vị trí ❌ (không hợp lệ)
📌 Nếu có nhiều xâu P thỏa → in bất kỳ
📌 Nếu không có → in -1
🧠 Ý tưởng giải (rất quan trọng)
Nhận xét mấu chốt
m rất nhỏ (≤ 10)
Ký tự chỉ từ 'a' đến 'z'
➡️ Ta thử sinh xâu P từ một xâu gốc (ví dụ S1) bằng cách:
💡 Lý do:
Nếu tồn tại P hợp lệ, thì P phải giống ít nhất một xâu cho trước ở hầu hết vị trí
Thử từ S1 là đủ (kỹ thuật “neo” – rất hay ra thi)
🧪 Cách kiểm tra một xâu P có hợp lệ không
Với mỗi xâu Si:
🧩 Thuật toán
Đọc n, m và danh sách xâu
Lấy xâu gốc S0
Tạo danh sách ứng viên P:
Chính S0
Với mỗi vị trí i:
Với mỗi P:
Nếu hết mà không có → in -1
⏱ Độ phức tạp
➡️ O(26 · m · n · m)
Với m ≤ 10 → chạy rất nhanh, an toàn thi tỉnh 👍
ĐÁP ÁN CÂU 5: Sự Lây Lan Covid-19
import sys
sys.stdin = open("COVID.INP", "r")
sys.stdout = open("COVID.OUT", "w")
# Doc du lieu
n = int(sys.stdin.readline().strip())
a = list(map(int, sys.stdin.readline().split()))
# Sap xep cac vi tri theo thu tu tang dan
a.sort()
# Tinh khoang cach giua cac vi tri va tim khoang cach nho nhat, lon nhat
min_dist = min(a[i + 1] - a[i] for i in range(n - 1)) # Khoang cach nho nhat giua hai nguoi
max_dist = a[-1] - a[0] # Khoang cach xa nhat giua nguoi dau va nguoi cuoi
# So nhom nhiem benh toi thieu la 1, toi da la so nguoi vi tat ca deu cach xa nhau
print(min_dist // 2 + 1, max_dist // 2 + 1)
1️⃣ Ý tưởng thuật toán
Bài toán cho:
Giả sử virus lây lan theo khoảng cách, mỗi người nhiễm có thể lây trong một phạm vi nhất định.
Ta cần xác định:
Số nhóm nhiễm tối thiểu
Số nhóm nhiễm tối đa
Dựa trên khoảng cách giữa các vị trí của những người.
2️⃣ Phân tích từng bước chương trình
🔹 Bước 1: Đọc dữ liệu
🔹 Bước 2: Sắp xếp các vị trí
🔹 Bước 3: Tính khoảng cách nhỏ nhất và lớn nhất
🔹 Bước 4: Tính số nhóm nhiễm bệnh
Giải thích công thức:
Mỗi nhóm lây lan chiếm bán kính 1 đơn vị về mỗi phía
Hai người cách nhau d sẽ tạo khoảng trống lây nhiễm là d // 2
Cộng thêm 1 là nhóm ban đầu
👉 In ra:
Số nhóm nhiễm tối thiểu
Số nhóm nhiễm tối đa
3️⃣ Độ phức tạp thuật toán
⏱️ Thời gian chạy
O(nlogn)O(n \log n)O(nlogn)
O(n)O(n)O(n)
👉 Tổng thời gian chạy:
O(nlogn)\boxed{O(n \log n)}O(nlogn)
💾 Bộ nhớ sử dụng
Lưu mảng a gồm n phần tử
Một vài biến đơn giản
👉 Độ phức tạp bộ nhớ:
O(n)\boxed{O(n)}O(n)
4️⃣ Nhận xét theo chuẩn bài thi
✔️ Ưu điểm:
✔️ Ý tưởng cốt lõi:
5️⃣ Đánh giá tổng quát
| Tiêu chí | Nhận xét |
|---|
| Độ đúng | ✅ Chính xác |
| Tốc độ | ⚡ Nhanh |
| Bộ nhớ | 💾 Thấp |
| Phù hợp thi | 🏆 Rất tốt |
❓ CÂU HỎI THƯỜNG GẶP – 73 ĐỀ THI HSG TIN HỌC PYTHON THCS TIỀN GIANG
1. Bộ 73 đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang phù hợp cho lớp mấy?
Bộ 73 đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang phù hợp cho học sinh lớp 6, 7, 8 và 9, đặc biệt là học sinh đang ôn thi học sinh giỏi Tin học cấp huyện, cấp tỉnh và học sinh luyện thi vào lớp 10 chuyên Tin.
2. Các đề thi có đúng chuẩn cấu trúc đề thi tỉnh Tiền Giang không?
Có. Toàn bộ đề được chọn lọc và biên soạn dựa trên cấu trúc đề thi thực tế của Sở GD&ĐT Tiền Giang, đảm bảo sát đề thi thật, giúp học sinh không bị bỡ ngỡ khi đi thi.
3. Bộ đề có kèm đáp án và code Python chi tiết không?
Có đầy đủ. Mỗi đề đều có:
4. Code Python trong bộ đề có phù hợp với bài thi chính thức không?
Hoàn toàn phù hợp. Code được viết theo chuẩn thi Tin học THCS, sử dụng:
5. Bộ đề này có phù hợp cho người mới học Python không?
Phù hợp nếu bạn đã nắm kiến thức Python cơ bản (biến, vòng lặp, điều kiện). Bộ đề được sắp xếp từ dễ → trung bình → nâng cao, giúp học sinh nâng trình từng bước, không bị quá tải.
6. Nội dung trong 73 đề thi gồm những dạng bài nào?
Bộ đề bao gồm:
Bài toán xử lý số, số nguyên tố
Mảng – danh sách – ma trận
Chuỗi ký tự
Bài toán tư duy thuật toán
Các dạng bài phân loại học sinh giỏi thường ra trong đề tỉnh
7. Giáo viên có thể dùng bộ đề này để bồi dưỡng học sinh không?
Rất phù hợp. Bộ đề là tài liệu chuẩn – đầy đủ – có lời giải chi tiết, giúp giáo viên:
8. Luyện trọn bộ 73 đề này mang lại lợi ích gì?
Luyện đủ bộ đề giúp học sinh:
Nắm chắc dạng đề HSG Tin học Python THCS
Cải thiện tốc độ và độ chính xác khi làm bài
Hiểu rõ bản chất thuật toán
Tăng cơ hội đạt giải cấp huyện – cấp tỉnh
9. Bộ đề có cập nhật mới không?
Có. Bộ đề được chọn lọc và cập nhật, phù hợp với xu hướng ra đề mới, đúng yêu cầu Python trong chương trình THCS hiện nay.
10. Nên luyện bộ đề này như thế nào để đạt hiệu quả cao nhất?
Cách học hiệu quả nhất:
1️⃣ Làm đề không xem đáp án trước
2️⃣ Tự code và chạy thử
3️⃣ So sánh với code mẫu & cách tối ưu
4️⃣ Ghi chú lại dạng bài hay sai
5️⃣ Luyện lại sau 1–2 tuần

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc