Thẻ: Tài liệu on thi HSG Tin học THPT C++

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

 

73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang 73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang 73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang

 


🎯 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

    1. Đọc số nguyên x từ file NUM.INP.
    2. Duyệt hai số a và b trong phạm vi [1, x], đảm bảo a ≤ b.
    3. Kiểm tra điều kiện a * b == x và a / b ≥ 0.5.
    4. 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.
    5. 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

    1. Đọ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.
    2. Chuyển đổi ngày hiện tại thành kiểu datetime.
    3. Cộng thêm số ngày vào ngày hiện tại bằng timedelta(days=so_ngay_them).
    4. Xuất kết quả với định dạng dd.mm.yyyy ra file CUP.OUT.

🔹 3. Chuỗi ký tự (String)

    1. Đọ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.
    2. 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.
    3. 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

    1. Đọ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.
    2. Sắp xếp danh sách tọa độ theo thứ tự tăng dần.
    3. 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.
    4. 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.
    5. 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:

  • 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


🏆 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 ÁNtà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

ĐÁ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:

  • 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.


2️⃣ Phân tích từng bước chương trình

🔹 Bước 1: Đọc dữ liệu

x = int(sys.stdin.readline().strip())

Đọc số nguyên dương x từ file NUM.INP.


🔹 Bước 2: Duyệt các cặp (a, b)

for a in range(1, x + 1):
for b in range(a, x + 1):
  • 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


🔹 Bước 3: Kiểm tra điều kiện số kết đôi

if a * b == x and a / b >= 0.5:
  • 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)


🔹 Bước 4: Xuất kết quả

print(la_ket_doi)
  • 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


3️⃣ Độ phức tạp thuật toán

⏱️ Thời gian chạy

  • 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)


💾 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:

  • 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.

ĐÁ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:

  • 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ẹ.


2️⃣ Phân tích từng bước chương trình

🔹 Bước 1: Đọc dữ liệu vào

ngay_hien_tai = sys.stdin.readline().strip()
so_ngay_them = int(sys.stdin.readline().strip())
  • 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


🔹 Bước 2: Chuyển chuỗi ngày sang kiểu datetime

ngay_hien_tai = datetime.strptime(ngay_hien_tai, "%d.%m.%Y")
  • 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.


🔹 Bước 3: Cộng thêm số ngày

ngay_tuong_lai = ngay_hien_tai + timedelta(days=so_ngay_them)
  • 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.


🔹 Bước 4: In kết quả đúng định dạng

print(ngay_tuong_lai.strftime("%d.%m.%Y"))
  • strftime chuyển datetime → chuỗi

  • Định dạng đúng yêu cầu đề bài: dd.mm.yyyy


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

  • 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)


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]

👉 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

n, L, R = map(int, sys.stdin.readline().split())
a = list(map(int, sys.stdin.readline().split()))
  • 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


🔹 Bước 2: Khởi tạo biến đếm

dem = 0

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]

for i in range(n):

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

for j in range(i + L, min(i + R + 1, n)):
  • 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.


🔹 Bước 5: Kiểm tra điều kiện điển hình

if a[i] == a[j] + a[j - 1]:

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)

dem += 1
break

🔹 Bước 6: In kết quả

print(dem)

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

  • 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)


💾 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:

  • Code rõ ràng, dễ hiểu

  • Xử lý đúng yêu cầu đề bài

  • 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.


5️⃣ Gợi ý nâng cao (không bắt buộc)

  • 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

ĐÁP ÁN CÂU 4: Đặt Lại Mật Khẩu

📌 Ví dụ trong đề

Input

2 4
abac
zbab

Một output hợp lệ

abab

✔ 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)

  • 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


🧠 Ý 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:

  • 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)


🧪 Cách kiểm tra một xâu P có hợp lệ không

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


🧩 Thuật toán

  1. Đọc n, m và danh sách xâu

  2. Lấy xâu gốc S0

  3. 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'

  4. 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

  5. Nếu hết mà không có → in -1


⏱ Độ phức tạp

  • 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 👍

ĐÁ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:

  • 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.


2️⃣ Phân tích từng bước chương trình

🔹 Bước 1: Đọc dữ liệu

n = int(sys.stdin.readline().strip())
a = list(map(int, sys.stdin.readline().split()))
  • n: số người

  • a: danh sách vị trí của các người


🔹 Bước 2: Sắp xếp các vị trí

a.sort()
  • Đư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


🔹 Bước 3: Tính khoảng cách nhỏ nhất và lớn nhất

min_dist = min(a[i + 1] - a[i] for i in range(n - 1))
  • 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

max_dist = a[-1] - a[0]
  • 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


🔹 Bước 4: Tính số nhóm nhiễm bệnh

print(min_dist // 2 + 1, max_dist // 2 + 1)

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

  • Sắp xếp mảng a:

O(nlog⁡n)O(n \log n)

  • Duyệt tính min_dist:

O(n)O(n)

👉 Tổng thời gian chạy:

O(nlog⁡n)\boxed{O(n \log n)}


💾 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)}


4️⃣ Nhận xét theo chuẩn bài thi

✔️ Ư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


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ó:

  • Đá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


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:

  • 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.


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:

  • 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

 

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

 

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.

 

100 đề và đáp án thi HSG tin Python cấp huyện 2025

Thầy mến chào các em đang yêu thích môn tin học lập trình Python! Để có thể thi tốt và đạt giải cao trong kỳ thi học sinh giỏi cấp huyện sắp tới ! Thầy đã soạn ra được các đề hay và bám sát với các đề thi các em phải ôn luyện trong 100 đề và đáp án thi HSG tin Python cấp huyện 2025 là đậu chắc luôn ! Mong các em có thể sắp xếp nhiều thời gian hơn để ôn luyện nhiều hơn để mình được nhiều kinh nghiệm

Đây đã là đề thi số 20 Đề 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

Đề thi học sinh giỏi cấp huyện chợ Gạo năm 2022 – 2023:

100 đề và đáp an thi HSG tin Python

Tài liệu On thi HSG Tin học THPT Python

De thi học sinh giỏi tin 11 Python

Tài liệu on thi HSG Tin học THPT C++

De thi học sinh giỏi Tin lớp 10 cấp trường Python

De thi học sinh giỏi Tin lớp 10 cấp trường Python

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO CHỢ GẠO

KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN TRUNG HỌC CƠ SỞ.

NĂM HỌC 2022-2023

Môn: TIN HỌC

Thời gian làm bài: 150 phút (Không kế thời gian giao đề)

Ngày thi: 14/02/2023

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

TỔNG QUAN BÀI THI

Tên bàiFile chương trìnhFile dữ liệu vào

*

File kết quả
Bài 1In sổ léSOLE.*SOLE.INPSOLE.OUT
Bài 2Đối xứngDOIXUNG.*DOIXUNG.INPDOIXUNG.OUT
Bài 3Công tắc đènSWITCH.*SWITCH.INPSWITCH.OUT
Bài 4Giải mã thông điệpGIAIMA.*GIAIMA.INPGIAIMA.OUT
Bài 5Chọn hoaCHONHOA.*CHONHOA.INPCHONHOA.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à Pascal, C++, Python hoặc phần mở rộng tương ứng với ngôn ngữ lập trình khác.

Bài 1: In số lẻ (4,0 điểm) ?

  • Cho n là một số nguyên bất kì {0<n<1000).
  • Yêu cầu: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng số nguyên dương n và đếm xem có bao nhiêu số lẻ được in ra.
  • Dữ liệu vào: Cho từ tệp văn bản SOLE.INP (Có thể nhập từ bàn phím) gồm
  • 1 dòng chứa số nguyên n (0<n<1000).                        ‘
  • Dữ liệu ra: Ghi vào tệp văn bản SOLE.OUT (Có thể in ra màn hình) gồm 2 dòng chứa các thông tin sau:
    • Dòng đầu tiên liệt kê 1 dãy số lẻ.
    •  Dòng thử hai ghi số lượng các số lẻ.
 

Ví dụ:

SOLE.INPSOLE.OUT
201 3 5 7 9 11 13 15 17 19 10

 

 

Bài 2: Đối xứng (4.0 điểm ) ?

  • Số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Chẳng hạn số 11,121,101 là các số đối xứng.
  • Yêu cầu: Viết chương trình tìm tất cả các số đối xứng có từ 2 chữ số trở lên từ n đến m.
  • Dữ liệu vào: Cho từ file văn bản DOIXƯNG.INP gồm 1 dòng chứa 2 số nguyên n, m (n <m) cách nhau bởi dấu-cách.
  • Dữ liệu ra: Ghi ra file văn bản DOIXUNG.OUT chứa các số đối xứng có 2 chữ số trở lên từ n đến m; các số cách nhau bởi dấu cách. Nếu không tìm được số đối xứng như yêu cầu thì ghi ra
  • Ví dụ:
DOIXUNG.INPDOIXUNG.OUT
80 11088 99 101

Bài 3: Công tắc đèn (4,0 điểm) ?

  • Trên vách tường được bố trí dãy liên tiếp các công tắc để điều khiển một bóng đèn điện, mỗi công tắc có thể được bật hoặc tắt. Được biết đèn chỉ được bật sáng khi có ít nhất hai công tắc được bật và không nằm cạnh nhau.
  • Yêu cầu: Với trạng thái của các công tắc, bạn cần phải xác định xem đèn có được bật sáng hay không.
  • Dữ liệu vào: Cho từ file văn bản SWITCH.INP gồm một xâu chứa các ký hiệu “+” hoặc mô tả các trạng thái của công tắc, từ công tắc đầu tiên đến công tắc cuối cùng và theo thứ tự từ trái sang phải. Ký hiệu “+” cho biêt công tăc ở trạng thái “bật” và chỉ trạng thái “tắt”.
  • Dữ liệu ra: Ghi ra file văn bản SWITCH.OUT chứa chữ “On” (không có dấu nháy kép) nếu đèn được bật sáng hoặc “Off ’ (không có dấu nháy kép) trong trường hợp ngược lại.
  • Ví dụ: 
SVVITCH.INPSWITCH.OUT
+-+-On
+–+-++Off

Bài 4: Giải mã thông điệp (4,0 điểm ) ?

  • Diễn giải:
    • Trong thời đại ngày nay, thông tin cá nhân của mỗi người dễ dàng bị xâm nhập bởi rất nhiều công nghệ hiện đại dùng để nghe lén.
    • Chính vì vậy, một đôi bạn muốn bảo mật thông tin cho nhau đã có sáng kiến nghĩ ra cách trao nhau những thông điệp mà người khác đọc hoặc nghe được thì không hiểu gì.
    • Thông điệp của họ là một câu với nhiều từ được phân biệt bởi ký tự trống (dấu cách) và được sắp xếp lộn xộn để trở thành câu vô nghĩa.
    • Để hiểu nội dung một thông điệp của người bạn gửi cho mình,
    • hai người bạn đã quy ước trước một bộ mã là một dãy số nguyên dương có số lượng số tương ứng với số từ của thông điệp nhằm giải mã thành câu có ý nghĩa.
  • Yêu cầu: Viết chương trình để giúp đôi bạn giải mã một thông điệp cho trước.
  • Dữ liệu vào: Cho từ file văn bản GIAIMA.INP gồm 2 dòng:
    •  Dòng đầu ghi một câu có không quá 255 kí tự là thông điệp được gởi đi.
    •  Dòng thứ hai ghi bộ mã gồm một dãy các số nguyên dương chỉ vị trí các từ của thông điệp trên (mỗi số cách nhau bởi 1 dấu khoảng trắng).
  • Dữ liệu ra: Ghi ra file văn bản GIAIMA.OUT gồm một dòng ghi câu đã được giải mã từ thông điệp đã cho.
  • Ví dụ:
 

GIAIMA.INPGIAIMA.OUT
gioi ban chuc hoc luon

3 2 5 4 1

chuc ban luon hoc gioi

Bài 5: Chọn hoa (4,0 điểm ) ?

  • Diễn giải:
    • Một công ty XYZ nọ, cứ đến mỗi quý là tổ chức sinh nhật cho nhân viên 1 lần.
    • Ông chủ của công ty này tên Bình là người yêu thích hoa lan, cho nên đến lần tổ chức sinh nhật trong quý I năm 2023 này,
    • Ông Bình quyết định đến cửa hàng bán hoa tươi để mua hoa về tặng cho nhân viên.
    • Cửa hàng hiện đang có n (n<= 20) giỏ phong lan rất đẹp được đánh số từ 1 đến n.
    • Các giỏ lan đều đẹp như nhau nên ông phân vân không biết chọn giỏ nào.
    • Ông muốn mua tặng cho nhân viên là k ( k <=n ) giỏ phong lan
  • Yêu cầu: Viết chương trình giúp ông Bình tìm tất cả các cách có the chọn.
  • Dữ liệu vào: Cho từ tệp văn bản CHONIIOA.INP gồm một dòng chứa 2 số nguyên n, k.
  • Dữ liệu ra: Ghi vào tệp văn bản CHONHOA.OUT tất cả các cách chọn có thể và tổng số cách chọn.
  • Ví dụ:
CHONHOA.INPCHONHOA.OUT
4 21 2

1 3

1 4

2 3

2 4

3 4

Tong so cach chon: 6

Đáp án bài 1: In số lẻ (4,0 điểm) ?

 

import sys
sys.stdin=open('SOLE.INP','r')
sys.stdout=open('SOLE.OUT','w')
n=int(input())
dem=0
for i in range(n+1):
    if i%2!=0:
        dem+=1
        print(i,end=' ')
print()
print(dem)

 

Đáp án bài 2: Đối xứng (4.0 điểm ) ?

 

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

 

Đáp án bài 3: Công tắc đèn (4,0 điểm) ?

 

import sys
sys.stdin=open('SWITCH.INP','r')
sys.stdout=open('SWITCH.OUT','w')
s=input()
a=list(s)
kq=1
for i in range(len(a)-1):
    if (a[i]=='-'and a[i+1]=='-') or (a[i]=='+'and a[i+1]=='+'):
        kq=0
        break
if kq==1:
    print('On')
else:
    print('Off')

 

Đáp án bài 4: Giải mã thông điệp (4,0 điểm ) ?

 

import sys
sys.stdin=open('GIAIMA.INP','r')
sys.stdout=open('GIAIMA.OUT','w')
a=input().split()
b=list(map(int,input().split()))
c=[]
d=[]
for i in range(len(b)):
    c.append(b[i]-1)
for i in range(len(c)):
    for j in range(len(a)):
        if c[i]==j:
            d.append(a[j])
print(*d)

 

Đáp án bài 5: Chọn hoa (4,0 điểm ) ?

 

import sys
sys.stdin=open('CHONHOA.INP','r')
sys.stdout=open('CHONHOA.OUT','w')
n,k=list(map(int,input().split()))
dem=0
for i in range(1,k+2):
    for j in range(2,n+1):
        if i!=j and i<=j:
            dem+=1
            print(i,j)
print('Tong so cach chon:',dem,sep='')

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 !

 

 

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 !

 

 

12 đề và đáp án thi HSG tin Python mới nhất năm 2024

Rất vui được gặp lại các em chuẩn bị thi học sinh giỏi môn tin học cấp huyện và cấp tỉnh. Để chuẩn bị tốt cho kỳ thi học sinh giỏi môn tin học sắp tới thầy đã soạn ra 12 đề và đáp án thi HSG tin Python mới nhất năm 2024. Để các em có bước chuẩn bị ôn luyện quan trọng để chuẩn bị kỳ thi khó khăn sắp tới. Nào chúng ta hãy cùng nhau giỏi đề 12 ở phía dưới ngay nào!

Đây đã là đề thi số 12 đề và đáp án thi HSG Tin Python cấp huyện 

tai ngay vi tính tấn dân

  • Còn em nào muốn học lý thuyết thì hãy vào đường dẫn phía dưới nhé ! chép từ bài 1 đến bài 21 là giỏi liền kha kha ! có tài liệu pdf tải về thoải mái !
    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 vào giải ngay đề 12  thi HSG Tin Python cấp huyện 

Số 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 sức mạnh của dàn PCD131 *D131.INPD131.OUT
Bài 2Đếm số lượng số hoàn hảo từ m đến nD132.*D132.INPD132.OUT
Bài 3Sắp xếp thứ tự các số trong mảng giảm dầnD133 *D133.INPD133.OUT
Bài 4Tìm số Iớn nhất trong xâu sD134.*D134.INPD134.OUT
Bài 5Sắp xếp danh sách theo điểm giảm dầnD135.*D135.INPD135.OUT

Bài 1: (4 điểm) Phân loại sức mạnh của dàn PC ?

  • Diễn giải:
    1. Siêu mạnh-Cao cấp: Điểm từ 800 đến 1000
    2. Mạnh-Trung cấp: Điểm từ 600 đến 799
    3. Vừa-Cơ bản: Điểm từ 500 đến 599
    4. Chậm-Chưa đạt: Điểm dưới 500
  • Input: Số nguyên X là điểm của dàn PC (0<=x<=1000)
  • Output: Loại theo mô tả trên
  • Ví dụ về input và output:
inputoutput
620Manh-Trung cap
801Sieu manh-Cao cap

Bài 2: (4 điểm) Đếm số lượng số hoàn hảo từ m đến n?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Đếm xem trong các số nguyên từ m đến n, có bao nhiêu số hoàn hảo.
    • Số hoàn hảo (hay còn gọi là số hoàn chỉnhsố hoàn thiện hoặc số hoàn thành) là một số nguyên dương mà tổng các ước nguyên dương thực sự của nó (các số nguyên dương bị nó chia hết ngoại trừ nó) bằng chính nó.
    • Ví dụ số hoàn hảo:
    • 6=1+2+3
    • 28=1+2+4+7+14
    • 496=1+2+4+8+16+31+62+124+248
  • Input: Hai số nguyên dương m và n trên cùng một dòng, cách nhau bởi dấu cách.
  • Output: Số lượng số hoàn hảo từ m đến n.
  • Ví dụ:
InputOutput
11 150
2 131

Bài 3: (4 điểm ) sắp xếp trong mảng theo thứ tự giảm dần ?

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: ao, ai, a2, …. sắp xếp thứ tự các số trong mảng giảm dần và in mảng đã sắp xếp.
  • 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: In mảng đà sấp xcp, mồi số trên một dòng
  •  Ví dụ:
 InputOutput
9 -6 3 8 10 -7 -210

9

8

3

-2

-6

-7

 

7 3 8 0 28

7

3

2

0

Bài 4: (4 điểm) Tìm số nguyên lớn nhất trong xâu s?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Tìm số nguyên lớn nhất trong xâu s
  • Input:
    • Xâu s trên một dòng, có độ dài không vượt quá 10 mũ 5, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
    • Các số có trong xâu không vượt quá 109
  • Output: Số nguyên lớn nhất trong xâu s. Nếu không có số nào thì in “-“
  • Ví dụ:
InputOutput
Ky thi hoc sinh gioi dien ra 1 ngay trong thang 2, co 5 bai, tong cong 20 di em, cham trong 3 ngay co ket qua20
Hom nay toi mua 5 quyen tap, 2 quyen sach va 4 cay viet5

Bài 5: (4 điểm) sắp xếp danh sách theo điểm giảm dần?

  • Diễn giải:
    • Nhập vào danh sách lớp và điểm của từng học sinh. Sắp xếp danh sách theo điểm giảm dần
    • Input: Mỗi dòng là một xâu họ tên và điểm 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, điểm là số thực từ 0 đến 10.
  • Output: Danh sách đã sắp xếp, mỗi dòng gồm họ tên và điểm (hiển thị một chữ số thập phân)
  • Ví dụ:
InputOutput
Pham Quoc Thinh 7

Tran Minh Phat 6.3

Dinh Nguyen Khoa 9

Hoang An Nhien 9

Mai Nguyen Tan Thanh 8.7

Nguyên Hoai Minh Anh 8.8

Vo Hoai Anh 8

Tran Duy Khang 7.8

Dinh Nguyen Khoa 9.0

Hoang An Nhien 9.0

Nguyen Hoai Minh Anh 8.8

Mai Nguyen Tan Thanh 8.7

Vo Hoai Anh 8.0

Tran Duy Khang 7.8

Pham Quoc Thinh 7.0

Tran Minh Phat 6.3

Ví dụ 2:

InputOutput
Tran Tien Long 8.5

Nguyên Huu Nam 6

Nguyên Minh Phat 7.2

Nguyên Tan Dung 7.5

Le Hoai Bao Duy 5.0

Tran Ngoe Van Anh 5.0

Pham Nguyên Thien Phuc 8.3

Nguyên Minh Dang 5.0

Duong Phu Loc 6.8

Tran Tien Long 8.5

Pham Nguyên Thien Phuc 8.3

Nguyên Tan Dung 7.5

Nguyên Minh Phat 7.2

Duong Phu Loc 6.8

Nguyên Huu Nam 6.0

Le Hoai Bao Duy 5.0

Tran Ngoe Van Anh 5.0

Nguyên Minh Dang 5.0

Đáp án bài 1: (4 điểm) Phân loại sức mạnh của dàn PC

 

import sys
sys.stdin=open('D131.INP','r')
sys.stdout=open('D131.OUT','w')
n=int(input())
if 800<=n<=1000:
    print('Sieu manh-Cao cap')
elif 600<=n<799:
    print('Manh-Trung cap')
elif 500<=n<=599:
    print('Vua-Co ban')
elif n<500:
    print('Cham-Chua dat')

 

Đáp án bài 2: (4 điểm) Đếm số lượng số hoàn hảo từ m đến n

 

import sys
sys.stdin=open('D132.INP','r')
sys.stdout=open('D132.OUT','w')
def kthh(n):
    s=0
    for i in range(1,n):
        if n%i==0:
            s+=i
    return n>1 and s==n
m,n=map(int,input().split())
dem=0
for i in range(m,n+1):
    if kthh(i):
        dem+=1
print(dem)

 

Đáp án bài 3: (4 điểm ) sắp xếp trong mảng theo thứ tự giảm dần

 

import sys
sys.stdin=open('D133.INP','r')
sys.stdout=open('D133.OUT','w')
a=list(map(int,input().split()))
a.sort()
a=a[::-1]
print(*a,sep='\n')

 

Đáp án bài 4: (4 điểm) Tìm số nguyên lớn nhất trong xâu s

 

import sys,re
sys.stdin=open('D134.INP','r')
sys.stdout=open('D134.OUT','w')
s=input()
s1=re.sub('[^0-9]+',' ',s).split()
a=[]
for i in range(len(s1)):
    a.append(int(s1[i]))
if len(s1)==0:
    print('-')
else:
    print(max(a))

 

Đáp án bài 5: (4 điểm) sắp xếp danh sách theo điểm giảm dần

import sys
sys.stdin=open('D135.INP','r')
sys.stdout=open('D135.OUT','w')
def laydiem(s):
    s=s.split()
    return float(s[-1])
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
        except ValueError:
            break
    except EOFError:
        break
kq=sorted(a,key=laydiem,reverse=True)
for i in range(len(kq)):
    x=kq[i].split()
    diem=float(x[-1])
    x.pop(-1)
    hoten=' '.join(x)
    print(hoten,'%0.1f'%diem)

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 !

 

 

 

Đề thi hsg tin 11 python có đáp án hay nhất 2024

Chào mừng các em đã quay lại làm tiếp Đề thi hsg tin 11 python có đáp án hay nhất 2024. Để cho các em có bước chuẩn bị tốt hơn ở kỳ thi khó khăn sắp tới. Rồi hãy nhanh tay giải đề phía dưới ngay nhé !

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

  • Rồi các em nếu chưa làm từ đề 1 hãy giải từ đề 1 trước rồi mới làm đề này các bạn nhé tại các đề từ dễ đến nâng cao!
  • 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
    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

Các em hãy giải ngay đề thứ 11 bồi dưỡng học sinh giỏi thi cấp huyện

 

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 mức độ tiêu thụ điện của thiết bịD121 *D121.INPD121.OUT
Bài 2In những số chính phương từ m đến nD122.*D122.INPD122.OUT
Bài 3Sắp xếp thứ tự các số trong mảng tăng dầnD123.*D123.INPD123.OUT
Bài 4ln các số có trong xâu sD124.*D124.INPD124.OUT
Bài 5In các chuỗi con đối xứng trong chuỗi sD125.*D125.INPD125.OUT

Bài 1 ( 4 điểm ):  Phân loại mức tiêu thụ điện của thiết bị ?

  • Diễn giải:
    1. A: Dưới 50 w/h
    2. B; Từ 51 w/h đến 100 w/h
    3. C: Từ 101 w/h đến 200 w/h
    4. D: Từ 201 w/h đến 500 w/h
    5. E: Trên 500 w/h
  • Input: Số nguyên X là mức độ tiêu thụ điện của thiết bị (0<x<=10000)
  • Output: Loại theo mô tả trên
  • Ví dụ về input và input:
inputinput
49A
175c

 

Bài 2: (4 điểm) In những số chính phương từ m đến n?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • In ra những số chính phương 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: Các số chính phương từ m đến n trên cùng một dòng, các số cách nhau một dấu cách. Nếu không có số chính phương nào từ m đến n thì in dấu “-“.
  • Ví dụ:
 InputOutput
11 15

 

249
9

Bài 3: (4 điểm) sắp xếp thứ tự các số trong mảng tăng dần?

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: a0, a1, a2,
    • Sắp xếp thứ tự các số trong mảng tăng dần và in mảng đã sắp xếp.
  • 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: In mảng đã sắp xếp, mỗi số trên một dòng
  • Ví dụ:
InputOutput
9 -6 3 8 10 -7 -2-7
-6
-2
3
8
9
10

 

7 3 8 0 20
2
3
7
8

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

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

2024

Bài 5: ( 4 điểm ) In các chuỗi con đối xứng trong chuỗi s?

  • Diễn giải:
    • Nhập vào một chuỗi s.
    • In các chuỗi con đối xứng có chiều dài lớn hơn 1 trong chuỗi s
  • Input:
    • Chuỗi s trên một dòng, có độ dài không vượt quá 10 mũ 5.
    • Chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Ví dụ:
InputOutput
12322322
232
3223

 

b1cddc121cddc1

Cddc

dd

Đáp án bài 1: Phân loại mức tiêu thụ điện của thiết bị?

 

import sys
sys.stdin=open('D121.INP','r')
sys.stdout=open('D121.OUT','w')
n=int(input())
if n<50:
    print('A')
elif 51<=n<=100:
    print('B')
elif 101<n<=200:
    print('C')
elif 201<=n<=500:
    print('D')
elif n>500:
    print('E')

 

Đáp án bài 2: In những số chính phương từ m đến n?

 

import sys,math
sys.stdin=open('D122.INP','r')
sys.stdout=open('D122.OUT','w')
def ktcp(n):
    if n<0:
        return False
    x=int(math.sqrt(n))
    return x*x==n
m=int(input())
n=int(input())
dem=0
for i in range(m,n+1):
    if ktcp(i):
        dem+=1
        print(i,end=' ')
if dem==0:
    print('-')

 

Đáp án bài 3: sắp xếp thứ tự các số trong mảng tăng dần?

 

import sys
sys.stdin=open('D123.INP','r')
sys.stdout=open('D123.OUT','w')
a=list(map(int,input().split()))
for i in range(len(a)-1):
    for j in range(i+1,len(a)):
        if a[i]>a[j]:
            tam=a[i]
            a[i]=a[j]
            a[j]=tam
for i in range(len(a)):
    print(a[i])

 

Đáp án bài 4: In các số có trong xâu s?

 

import sys
sys.stdin=open('D124.INP','r')
sys.stdout=open('D124.OUT','w')
n=input()
s1=''
for i in range(len(n)):
    if n[i].isdigit():
        s1+=n[i]
    elif s1:
        print(s1)
        s1=''
if s1:
    print(s1)

 

Đáp án bài 5: In các chuỗi con đối xứng trong chuỗi s?

 

import sys
sys.stdin=open('D125.INP','r')
sys.stdout=open('D125.OUT','w')
def ktdx(s):
    return s==s[::-1]
s=input()
b=[]
for i in range(len(s)):
    for j in range(i+1,len(s)+1):
        subcon=s[i:j]
        if ktdx(subcon) and len(subcon)>1:
            b.append(subcon)
if len(b)>0:
    for subcon in sorted(b):
        print(subcon)
else:
    print('-1')

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é !

Vui lòng Chấm điểm 5 sao trang cho bài viết hay !