73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN (Mới & Chọn Lọc)
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
DANH SÁCH TÓM TẮT:
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.
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:
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:
Nếu không có xâu nào phù hợp, in -1.
Đ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:
Học sinh tự học tại nhà
Giáo viên soạn tài liệu bồi dưỡng
Phụ huynh theo dõi quá trình học của con
📌 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.
✔️ 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
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:
Đề thi HSG Tin học mới
Code Python giải chi tiết
Tài liệu ôn thi chuyên Tin từ cơ bản đến nâng cao
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)
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:
a×b=x
a≤b
a/b≥0.5
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.
Đọc số nguyên dương x từ file NUM.INP.
a chạy từ 1 đến x
b chạy từ a đến x → đảm bảo a ≤ b, tránh xét trùng cặp
a * b == x → (a, b) là một cặp ước của x
a / b ≥ 0.5 → đúng điều kiện đề bài
👉 Nếu thỏa mãn:
Gán la_ket_doi = 1
Dừng vòng lặp ngay (không cần xét thêm)
In 1 nếu x là số kết đôi
In 0 nếu không tồn tại cặp nào thỏa
Vòng a: chạy tối đa x lần
Với mỗi a, vòng b: chạy tối đa x − a + 1 lần
👉 Trường hợp xấu nhất:
O(x^2)
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)
✔️ Thuật toán:
Dễ hiểu
Dễ cài đặt
Phù hợp mức THCS – HSG cấp huyện/tỉnh
⚠️ Nhược điểm:
Với x lớn → chạy chậm do O(x²)
👉 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.
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"))
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:
Tháng có 28, 29, 30 hay 31 ngày
Năm nhuận
➡️ Ta sử dụng thư viện datetime của Python để xử lý chính xác và gọn nhẹ.
ngay_hien_tai: chuỗi ngày theo dạng dd.mm.yyyy
so_ngay_them: số nguyên – số ngày cần cộng thêm
strptime giúp chuyển chuỗi → đối tượng datetime
Định dạng %d.%m.%Y tương ứng:
%d: ngày
%m: tháng
%Y: năm
➡️ Sau bước này, Python hiểu đúng cấu trúc ngày tháng, kể cả năm nhuận.
timedelta(days=so_ngay_them) biểu diễn khoảng thời gian cần cộng
Python tự động:
Chuyển tháng
Chuyển năm
Xử lý năm nhuận
➡️ Không cần tự viết kiểm tra ngày/tháng phức tạp.
strftime chuyển datetime → chuỗi
Định dạng đúng yêu cầu đề bài: dd.mm.yyyy
Đọ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)
Chỉ dùng vài biến kiểu đơn giản (datetime, int)
Không dùng mảng hay vòng lặp
👉 Độ phức tạp bộ nhớ:
O(1)
✔️ Ư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)
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)
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]
👉 Nhiệm vụ: đếm số phần tử điển hình trong mảng.
n: số phần tử của mảng
L, R: giới hạn khoảng xét
a: mảng gồm n số nguyên
Biến dem dùng để đếm số phần tử điển hình.
Xét từng vị trí i trong mảng làm ứng viên phần tử điển hình.
j ≥ i + L
j ≤ i + R
j < n (tránh vượt chỉ số mảng)
👉 Đảm bảo đúng điều kiện đề bài.
Nếu tồn tại ít nhất một j thỏa mãn thì:
a[i] là phần tử điển hình
Tăng biến đếm
Dừng vòng lặp j (không cần xét thêm)
In ra số lượng phần tử điển hình tìm được.
Vòng ngoài: chạy n lần
Vòng trong: tối đa R − L + 1 lần
👉 Trường hợp xấu nhất:
O(n×(R−L))\boxed{O(n \times (R – L))}
Nếu R − L gần n:
O(n2)
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)
✔️ Ưu điểm:
Code rõ ràng, dễ hiểu
Xử lý đúng yêu cầu đề bài
Có break giúp giảm thời gian chạy khi đã thỏa điều kiện
⚠️ Nhược điểm:
Với n lớn và R − L lớn → chương trình có thể chậm
Chưa tối ưu cho dữ liệu rất lớn
👉 Tuy nhiên, rất phù hợp với đề HSG THCS nếu không yêu cầu tối ưu cao.
Có thể tối ưu bằng bảng băm (dict) để tra nhanh tổng a[j] + a[j-1]
Hoặc tiền xử lý các cặp tổng liên tiếp
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í
Đâ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)
Có n xâu S1, S2, …, Sn
Mỗi xâu độ dài m (m ≤ 10)
Cần tìm xâu P độ dài m sao cho:
👉 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
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:
Giữ nguyên S1
Hoặc đổi 1 vị trí của S1 sang chữ khác (a..z)
💡 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)
Với mỗi xâu Si:
Đếm số vị trí j sao cho Si[j] != P[j]
Nếu > 1 → P không hợp lệ
Nếu tất cả đều ≤ 1 → chấp nhậ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:
Thử thay S0[i] bằng mọi chữ 'a'..'z'
Với mỗi P:
Kiểm tra với tất cả Si
Nếu hợp lệ → in P và kết thúc
Nếu hết mà không có → in -1
Số ứng viên ≤ 1 + 26 * m ≈ 261
Mỗi ứng viên kiểm tra n * m
➡️ O(26 · m · n · m)
Với m ≤ 10 → chạy rất nhanh, an toàn thi tỉnh 👍
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)
Bài toán cho:
n: số người
Mảng a[]: vị trí của từng người trên một trục thẳng
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.
n: số người
a: danh sách vị trí của các người
Đưa các vị trí về thứ tự tăng dần
Giúp việc tính khoảng cách giữa những người liền kề trở nên đơn giản
Tính khoảng cách nhỏ nhất giữa hai người đứng gần nhau nhất
Đây là tình huống lây lan mạnh nhất → số nhóm ít nhất
Khoảng cách giữa người đứng đầu và người đứng cuối
Đây là tình huống lây lan yếu nhất → số nhóm nhiều nhất
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
Sắp xếp mảng a:
O(nlogn)O(n \log n)
Duyệt tính min_dist:
O(n)O(n)
👉 Tổng thời gian chạy:
O(nlogn)\boxed{O(n \log n)}
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)}
✔️ Ưu điểm:
Thuật toán đơn giản, hiệu quả
Không dùng vòng lặp lồng nhau
Chạy nhanh với n lớn
Rất phù hợp đề HSG THCS
✔️ Ý tưởng cốt lõi:
Chuyển bài toán lây lan → bài toán khoảng cách trên trục số
Chỉ cần xét khoảng cách nhỏ nhất và lớn nhấ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 |
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.
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.
Có đầy đủ. Mỗi đề đều có:
Đáp án chính xác
Code Python hoàn chỉnh
Giải thích tư duy thuật toán
Cách đọc – ghi file đúng chuẩn đề thi HSG Tin học THCS
Hoàn toàn phù hợp. Code được viết theo chuẩn thi Tin học THCS, sử dụng:
import sys
Đọc dữ liệu từ file .INP
Ghi kết quả ra file .OUT
Đúng với cách chấm bài trong các kỳ thi HSG cấp tỉnh.
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.
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
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:
Soạn bài bồi dưỡng HSG Tin học
Ra đề luyện tập
Hướng dẫn học sinh tư duy thuật toán đúng hướng
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
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.
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
Bạn đang tìm kiếm nguồn tài liệu ôn thi học sinh giỏi Tin học lớp…
Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến…
Tổng Hợp Các Hàm Python "Cốt Lõi" Khi Thi HSG Tỉnh Và Vào 10 Chuyên…
Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp…
Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải…
6 Kinh nghiệm làm bài thi Học sinh giỏi Tin học Tỉnh 2026- 2027 &…
This website uses cookies.