Thẻ: De thi HSG Tin 10 Python

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

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

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

Tải bằng google driver

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

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

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

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

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

Thiết kế dạng chữ :

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

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

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

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

TỔNG quan các BÀi thi

Thứ tự 

Tên bài

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

 

 

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

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

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

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

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

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

Ví dụ:

SAME.INPsame.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

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

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

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

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

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

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

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

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

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

Ví dụ:

STRING.INPSTRING.OUT
m2aC0ma2T3TamCam

0223

 

 

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

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

Ví dụ:

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

 

 

Giải thích:

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

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

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

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

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

Biết rằng:

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

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

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

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

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

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

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

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

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

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

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

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

tích là: 1.73

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

 

 

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

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

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

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

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

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

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

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

GOOD.INPGOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

 

Giải thích bộ test 1:

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

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

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

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

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

 

 

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

1.1 Đáp án bài 1:

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

1.2 CÁCH GIẢI 1:

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

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

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

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

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

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

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

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

⏳ Độ phức tạp

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

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

 

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

2.1 Đáp án bài 2:

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

2.2 CÁCH GIẢI:

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

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

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

Cách giải

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

Độ phức tạp

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

 

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

3.1 Đáp án :

 

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

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

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

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

so_nguoi_may_man = 0

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

print(so_nguoi_may_man)

 

3.2 CÁCH GIẢI

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

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

 

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

4.1 Đáp án:

 

import sys, math

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

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

dem_tam_giac = 0
dien_tich_lon_nhat = 0.0

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

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

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

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

                if dien_tich > dien_tich_lon_nhat:
                    dien_tich_lon_nhat = dien_tich

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

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

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

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

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

a + b > c

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

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

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

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

4️⃣ Yêu cầu

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

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

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


🧠 Độ phức tạp

  • n < 100

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

📌 Ví dụ minh họa

Input

5
1 4 5 2 3

Output

3
6.00

Input

3
1 2 3

Output

0
-1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

🔹 Đọc dữ liệu

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

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

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


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

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

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

  • Mục đích:

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

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


🔹 Biến hỗ trợ

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

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


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

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

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

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

  • Với mỗi kiện:

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

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

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

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

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


🔹 In kết quả

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

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


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

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

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

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

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

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

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

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


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

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

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

➡️ Tổng thời gian:

O(nlog⁡n)


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

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

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

➡️ Tổng bộ nhớ:

O(n)


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

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

⚠️ Lưu ý:

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

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

 

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

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

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

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

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

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

 

 

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

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

 

6 Kinh nghiệm làm bài thi Học sinh giỏi Tin học Tỉnh 2026-2027

6 Kinh nghiệm làm bài thi Học sinh giỏi Tin học Tỉnh 2026- 2027 & Bí quyết giúp “chiến binh Tin” đạt điểm cao

Tin học là một môn học đặc thù. Trong quá trình học, rèn luyện và đặc biệt là khi đi thi, mọi thứ đều gắn liền với máy tính – thuật toán – tư duy logic. Vì vậy, để đạt được kết quả như mong muốn trong các kỳ thi Học sinh giỏi Tin học, các “chiến binh Tin” cần nắm chắc những kinh nghiệm làm bài thi rất riêng của môn học này.

Bài viết dưới đây tổng hợp những kinh nghiệm quý báu được truyền lại từ các anh chị đi trước, đã từng chinh chiến ở các kỳ thi HSG Tin học cấp huyện, cấp tỉnh, cấp quốc gia. Nếu bạn đang chuẩn bị bước vào kỳ thi quan trọng, đừng bỏ qua bài viết này!


1. Chuẩn bị kiến thức – Nền móng quyết định thành công

Bất kỳ cuộc thi nào cũng đòi hỏi kiến thức trong một phạm vi nhất định, và nhiệm vụ của bạn là phải nắm thật chắc phạm vi đó.

🔹 Các kỳ thi Học sinh giỏi Tin học thường có:

  • Thuật toán cơ bản & nâng cao

  • Cấu trúc dữ liệu

  • Xử lý mảng – chuỗi – đồ thị

  • Quy hoạch động, vét cạn, tham lam…

👉 Việc quan trọng nhất trước kỳ thi là bạn cần có cái nhìn tổng quát về toàn bộ kiến thức đã học.

⚠️ Lưu ý cực kỳ quan trọng:
Không nên “vùi đầu” học thêm kiến thức mới ngay sát ngày thi. Điều này rất dễ gây:

  • Rối kiến thức

  • Nhầm lẫn thuật toán

  • Làm lu mờ những gì bạn đã học kỹ trước đó

👉 Giai đoạn cận thi nên ôn tập – hệ thống – luyện đề, KHÔNG học lan man.


2. Tâm lý khi đi thi – Yếu tố sống còn

Nhiều người thường truyền tai nhau:

“Trước ngày thi không được chơi game, không xem phim, không nghe nhạc…”

❌ Thật ra, những điều cấm đoán này chỉ làm bạn căng thẳng hơn.

Lời khuyên thực tế:

  • Trước ngày thi khoảng 1–2 ngày, hãy:

    • Nghe nhạc

    • Xem phim nhẹ nhàng

    • Làm việc mình thích

👉 Mục tiêu là tạo tâm lý thoải mái nhất.

📌 Với môn Tin học:

  • Bạn không học thuộc lòng

  • Kiến thức không thể “bay mất” chỉ sau 1–2 ngày giải trí

Hãy tự tin!

5 bí kíp Chinh Phục Python ôn thi HSG Tin Học Cấp Tỉnh 2026 - 2027

5 bí kíp Chinh Phục Python ôn thi HSG Tin Học Cấp Tỉnh 2026 – 2027


3. Cách làm bài thi Tin học hiệu quả nhất

3.1. Khi vừa nhận đề – Đừng hoảng loạn

Những phút đầu tiên ai cũng hồi hộp. Việc bạn nên làm là:

✔️ Đọc bài 1 trước (thường là bài dễ, ăn điểm)
✔️ Nếu chưa bình tĩnh:

  • Tạo sẵn form chương trình

  • Tạo trước file INPUT – OUTPUT


3.2. Chiến thuật làm bài “vàng”

💡 Nguyên tắc bất di bất dịch:

👉 Bài dễ làm trước – bài khó làm sau
👉 Làm bài nào chắc bài đó

⏱️ Phân bổ thời gian hợp lý:

  • Bài 1: Làm nhanh nhất có thể

  • Bài 2 – 3:

    • Dành 10–15 phút suy nghĩ thuật toán

    • Nếu chưa ra tối ưu → Duyệt để ăn ~60% số test

📌 Lý do:

  • Đề Tin học thường cho 60% test dữ liệu nhỏ

  • Cài đặt duyệt khéo vẫn có điểm!

👉 Sau đó:

  • Còn thời gian thì cải tiến thuật toán

  • Ăn được thêm test nào là thêm điểm đó


3.3. Những lưu ý cực kỳ quan trọng

⚠️ Trước khi code:

  • Đặt đúng tên file chương trình

  • Đặt đúng tên file INPUT / OUTPUT

  • Xem kỹ giới hạn dữ liệu để khai báo mảng

⏰ Khi còn 10 phút cuối:

  • Kiểm tra lại toàn bộ

  • Tránh sai sót đáng tiếc khi nộp bài

👉 Nên luyện cách làm này với đề thi thử để không bị lúng túng.


4. Kiểm tra bài làm – Đừng bao giờ bỏ qua

Sau khi làm xong mỗi bài, hãy test thật nhiều.

✔️ Test nhỏ:

  • Tự sinh test

  • Kiểm tra tính đúng thuật toán

✔️ Test lớn:

  • Giá trị lớn nhất

  • Dữ liệu ngẫu nhiên
    👉 Phát hiện:

  • Tràn số

  • Lỗi mảng

  • Stack overflow

💡 Với những bài có thuật toán chậm nhưng đúng:

  • Viết chương trình O(N²) để kiểm tra

  • So sánh kết quả với chương trình tối ưu

👉 Nếu nhiều cách cho cùng kết quả, xác suất đúng rất cao!


5. Đọc kỹ đề bài – Càng đọc càng tốt

📌 Hãy đọc đề:

  • Trước khi làm

  • Trong khi làm

  • Sau khi làm xong

Rất nhiều trường hợp:
❌ Sai vì hiểu nhầm đề
❌ Thiếu chi tiết nhỏ nhưng mất nhiều điểm


6. Phong cách viết chương trình khi đi thi

Phong cách code tốt giúp bạn:

  • Làm nhanh hơn

  • Debug dễ hơn

  • Ít sai sót hơn

🔹 Ít biến → có thể đặt tên ngắn (a, b, x, y, f…)
🔹 Nhiều biến → đặt tên có ý nghĩa, tránh nhầm lẫn

👉 Nhầm biến là lỗi rất khó chịu khi đi thi!


Đừng đòi hỏi “hoàn hảo”

❌ Không phải bài nào cũng giải được 100%
✅ Mục tiêu là ăn điểm tối đa có thể

📌 Nhiều bài:

  • Chỉ cần thêm 1–2 điều kiện

  • Có thể tăng rất nhiều điểm

👉 Bình tĩnh đánh giá:

  • Có nên tiếp tục cải tiến không?

  • Hay chuyển sang bài khác sẽ hiệu quả hơn?


7. Sao lưu bài làm – Phòng hơn chữa

💾 Thỉnh thoảng hãy:

  • Lưu bài vào nhiều thư mục

  • Lưu ở nhiều ổ khác nhau

📁 Nên tạo:

  • 3 thư mục cho 3 bài

  • 1 thư mục riêng cho bài chuẩn bị nộp

👉 Tránh nộp nhầm file!


8. Đánh giá và quyết định thông minh

Trong phòng thi, bạn luôn phải đánh giá:

  • Độ khó từng bài

  • Xác suất đúng của thuật toán

  • Thời gian cần thiết

  • Khả năng test & debug

👉 Từ đó quyết định:

  • Làm bài nào trước

  • Có nên cải tiến tiếp không

  • Kiểm tra theo cách nào là tốt nhất

TÓM TẮT LẠI LÀ:

Để làm tốt bài thi HSG Tin học 2026-2027, bạn cần nắm vững kiến thức nền tảng, thực hành liên tục, hiểu rõ đề bài, quản lý thời gian hiệu quả, xây dựng chiến lược giải quyết vấn đề và giữ tâm lý vững vàng, tập trung vào tư duy thuật toán và code sạch, tối ưu hóa hiệu suất. 
Dưới đây là 6 kinh nghiệm cốt lõi:
  1. Nắm Chắc Nền Tảng + Thuật Toán:
    • Kiến thức cơ bản: Cấu trúc dữ liệu (mảng, xâu, danh sách liên kết, cây, đồ thị), giải thuật cơ bản (tìm kiếm, sắp xếp, quy hoạch động), lập trình hướng đối tượng (nếu có).
    • Thuật toán chuyên sâu: Hiểu sâu các thuật toán như Dijkstra, Floyd-Warshall, DFS, BFS, quy hoạch động (DP), greedy. Luyện tập trên các nền tảng như Codeforces, LeetCode, Topcoder để nhuần nhuyễn.
  2. Thực Hành “Học Đi Đôi Với Hành”:
    • Code thật nhiều: Code lại các bài tập đã giải, tự đặt ra các biến thể của bài toán.
    • Debug & Tối ưu: Rèn luyện kỹ năng tìm lỗi và tối ưu code, đặc biệt là về độ phức tạp thời gian và bộ nhớ (Time/Space Complexity).
  3. Phân Tích Đề & Chiến Lược Làm Bài:
    • Đọc kỹ đề: Xác định rõ ràng yêu cầu, điều kiện ràng buộc (constraints), ví dụ.
    • Lập kế hoạch: Với mỗi bài, hãy phác thảo hướng giải, thuật toán trước khi code. Thường chia nhỏ các bài toán lớn.
  4. Quản Lý Thời Gian Nghiêm Ngặt:
    • Ưu tiên: Giải quyết bài dễ trước, bài khó sau.
    • Kiểm tra thường xuyên: Dành thời gian cuối giờ để chạy thử với các test case biên (edge cases) và tối ưu hóa lại code nếu cần.
  5. Tư Duy Thuật Toán & Code “Sạch”:
    • Hiểu bản chất: Đừng cố gắng nhớ code mẫu, hãy hiểu cách thuật toán hoạt động.
    • Code rõ ràng: Dùng biến có ý nghĩa, comment hợp lý để dễ đọc, dễ sửa (cũng giúp bạn khi làm bài kiểm tra).
  6. Tâm Lý Vững Vàng & Sức Khỏe:
    • Giữ bình tĩnh: Khi gặp bài khó, hít thở sâu, quay lại đọc đề.
    • Ngủ đủ, ăn uống: Đảm bảo thể lực tốt nhất cho ngày thi chính thức

Kết luận

Thi Học sinh giỏi Tin học không chỉ là biết code, mà còn là:

  • Chiến thuật

  • Tâm lý

  • Kinh nghiệm phòng thi

Hy vọng những kinh nghiệm trên sẽ giúp các bạn tự tin hơn, làm bài hiệu quả hơn và đạt được kết quả cao nhất trong các kỳ thi sắp tới.

💪 Chúc các “chiến binh Tin học” thi tốt – code mượt – ăn trọn điểm!

Câu hỏi thường gặp về kinh nghiệm làm bài kỳ thi Học sinh giỏi Tin học Tỉnh 2026–2027

1. Kỳ thi Học sinh giỏi Tin học Tỉnh 2026–2027 gồm những dạng bài nào?

Kỳ thi Học sinh giỏi Tin học Tỉnh thường gồm các dạng bài như: xử lý mảng và chuỗi, thuật toán duyệt – vét cạn, quy hoạch động, đồ thị, toán tin và tối ưu thuật toán. Đề thi có nhiều mức độ từ cơ bản đến nâng cao để phân loại thí sinh.


2. Làm sao để đạt điểm cao trong kỳ thi Học sinh giỏi Tin học Tỉnh?

Để đạt điểm cao, học sinh cần nắm chắc kiến thức nền tảng, luyện đề thường xuyên, rèn kỹ năng phân tích bài toán, phân bổ thời gian hợp lý và áp dụng chiến thuật “bài dễ làm trước – bài khó làm sau”.


3. Có nên học thêm thuật toán mới ngay trước ngày thi không?

Không nên học thêm thuật toán mới ngay sát ngày thi Học sinh giỏi Tin học. Giai đoạn cận thi nên tập trung ôn lại kiến thức đã học, luyện đề và sửa lỗi thường gặp để tránh rối kiến thức và mất tự tin.


4. Khi không nghĩ ra thuật toán tối ưu thì nên làm gì?

Trong trường hợp chưa nghĩ ra thuật toán tối ưu, thí sinh nên cài đặt thuật toán đơn giản hoặc duyệt để ăn điểm một phần. Nhiều bài thi Tin học cho phép đạt 50–60% số điểm với dữ liệu nhỏ nếu cài đặt khéo léo.


5. Phân bổ thời gian làm bài thi Tin học như thế nào là hợp lý?

Thông thường, bài đầu tiên nên hoàn thành nhanh để lấy điểm chắc chắn. Các bài còn lại nên dành thời gian suy nghĩ thuật toán khoảng 10–15 phút trước khi code. Luôn chừa lại 10 phút cuối để kiểm tra và test chương trình.


6. Có cần test chương trình sau khi làm xong mỗi bài không?

Rất cần. Sau khi hoàn thành mỗi bài, học sinh nên test chương trình với dữ liệu nhỏ, dữ liệu biên và dữ liệu lớn để phát hiện lỗi logic, tràn số, vượt giới hạn bộ nhớ hoặc thời gian.


7. Nên sử dụng ngôn ngữ lập trình nào trong kỳ thi HSG Tin học?

Các ngôn ngữ phổ biến trong kỳ thi Học sinh giỏi Tin học là Pascal, C++ và Python. Học sinh nên chọn ngôn ngữ mình thành thạo nhất, hiểu rõ cách xử lý file, tốc độ và giới hạn bộ nhớ.


8. Phong cách viết code có ảnh hưởng đến kết quả thi không?

Có. Phong cách viết code rõ ràng, dễ đọc giúp giảm lỗi, debug nhanh và tiết kiệm thời gian trong phòng thi. Đây là yếu tố rất quan trọng khi thi Học sinh giỏi Tin học.


9. Có nên sao lưu bài làm trong quá trình thi không?

Nên sao lưu bài làm thường xuyên vào nhiều thư mục khác nhau để tránh sự cố kỹ thuật. Việc này giúp bảo vệ bài làm và tránh mất dữ liệu đáng tiếc.


10. Học sinh lớp mấy có thể tham gia thi Học sinh giỏi Tin học Tỉnh?

Thông thường, kỳ thi Học sinh giỏi Tin học Tỉnh dành cho học sinh THCS và THPT, tùy theo quy định của từng địa phương và từng năm học.


11. Bao lâu trước kỳ thi nên bắt đầu ôn luyện HSG Tin học?

Lý tưởng nhất là học sinh nên ôn luyện ít nhất 3–6 tháng trước kỳ thi. Việc chuẩn bị sớm giúp xây dựng nền tảng vững chắc và rèn kỹ năng làm bài hiệu quả.


12. Nguồn tài liệu nào phù hợp để ôn thi Học sinh giỏi Tin học?

Học sinh nên luyện các đề thi HSG Tin học các năm trước, tài liệu thuật toán cơ bản – nâng cao và các bài tập lập trình có lời giải chi tiết để nâng cao tư duy.

Đề 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 !

7 đề thi học sinh giỏi tin học 10 Python hay nhất năm 2024

Mến chào các em yêu thích môn lập trình python! Hôm nay thầy sẽ giới thiệu 7 đề thi học sinh giỏi tin học 10 Python hay nhất năm 2024. Cho các em có những trải nghiệm ôn thi tốt nhất để chuẩn bị cho kỳ thi cam go sắp tới nhé ! Quan mỗi bài thi các em phải rút ra được những kinh nghiệm gì? ghi tóm tắt các phần quan trọng trong tập để khi sắp tới kỳ thi ôn lại lần nữa là vô thi ngon lành các em nhé !

Đây đã là đề thi thứ 7 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é !

    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

Tổng quan đề 7 thi học sinh giỏi tin học 10 Python hay nhất

Thứ tựTên hàiFile

chương

trinh

File dữ liệu

vào

File kết quả
Bài 1Tính “tiết học” trong ngàyD081.*D081.INPD081.OUT
Bài 2In những số nguyên tố từ m đến nD082.*D082.INPD082.OUT
Bài 3Đếm số lượng số âm trong mảngD083.*D083.INPD083.OUT
Bài 4Sắp xếp các từ trong xâu theo thứ tự chiều dài của từng từD084.*D084.INPD084.OUT
Bài 5In số lượng của dãy số Collatz bắt dấu từ nD085.*D085.INPD085.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C ++.

 

Bài 1: (4 điểm) Tính các “tiết học” trong ngày

  • Diễn giải: 
    1. Tiết 1: Từ 07 giờ 00 đến trước 07 giờ 46
    2. Tiết 2: Từ 07 giờ 50 đến 08 giờ 35.
    3. Tiết 3: Từ 09 giờ 00 đến 09 giờ 45.
    4. Tiết 4: Từ 09 giờ 50 đến 10 giờ 35.
    5. Tiết 5: Từ 10 giờ 45 đến 11 giờ 30.
    6. Ngoài những khung giờ trên là giờ “Giải lao”
  • Input: Chuỗi giờ phút dạng hh:mm cho biết giờ và phút hiện tại (00<=hh<24, 00<=mm<60).
  • Output: “Tiết học” theo mô tả trên
  • Ví dụ:
inputoutput
07:55Tiet 2
08:40Giai lao

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

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

15

11 13
2

13

2 3 5 7 11 13

Bài 3: (4 điểm) Đếm số lượng số âm trong mảng

  • Diễn Giải: Nhập vào một mảng số nguyên a: a0, a1,a2,…..an Đếm số lượng số âm trong mảng.
  • Input: Một dòng chứa các số nguyên có giá trị tuyệt đối không vượt quá 105, cách nhau bởi dấu cách
  • Output: Số lượng số âm trong mảng
InputOutput
9 -6 3 8 10 -7 -23
7 3 8 0 20

Bài 4: (4 điểm) sắp xếp các từ trong xâu theo thứ tự chiều dài của từng từ

  • Diễn giải:
    • Nhập vào một xâu s.
    • Sắp xếp các từ trong xâu theo thứ tự chiều dài của từng từ.
  • Input:
    • Xâu s trên một dòng, có độ dài không vượt quá 10s,
    • Chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output:
    • In các từ đã sắp xếp trên một dòng, cách nhau bởi dấu cách
InputOutput
Toi hoc LAP TRINH C++ tu nam 2024tu Toi hoc LAP C++ nam 2023 TRINH
Thi HOC SINH GIOI mon Tin HocThi HOC mon Tin Hoc SINH GIOI

Bài 5: (4 điểm) In số lượng của dãy số Collatz bắt đầu từ n

  • Diễn giải:
    • Nhập vào số nguyên dương n.
    • In số lượng của dãy số Collatz bắt đầu từ n Dãy số Collatz được xác định bởi quy tắc:
    • Cho một số nguyên dương n:
      • Nếu n là số chẵn, chia nó cho 2: n/2.
      • Nếu n là số lc, nhân nó cho 3 và cộng thêm 1: 3n+1.
    • Dãy số kết thúc khi n=1
    • Ví dụ:
      • Nếu n = 5 thì dãy số Collatz là; 5 16 8 4 2 1
      • Nếu n=6 thì dãy số Collatz là: 6 3 10 5 16 8 4 2 1
  • Input: Một số nguyên n (0<n<109)
  • Output: Số lượng phần từ cùa dày so Collatz bắt đầu từ n
  • Ví dụ:
InputOutput
56
69

Đáp án bài 1: Tính các “tiết học” trong ngày

 

import sys
sys.stdin=open('D081.INP','r')
sys.stdout=open('D081.OUT','w')
a=input()
if '07:00'<=a<'07:46':
    print('Tiet 1')
elif '07:50'<=a<'08:35':
    print('Tiet 2')
elif '09:00'<=a<'09:45':
    print('Tiet 3')
elif '09:50'<=a<'10:35':
    print('Tiet 4')
elif '10:45'<=a<'11:30':
    print('Tiet 5')
else:
    print('Giai lao')

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

 

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

 

Đáp án bài 3: Đếm số lượng số âm trong mảng

 

import sys
sys.stdin=open('D083.INP','r')
sys.stdout=open('D083.OUT','w')
a=list(map(int,input().split()))
dem=0
for i in range(0,len(a)):
    if a[i]<0:
        dem+=1
print(dem,end=' ')

 

Đáp án bài 4: sắp xếp các từ trong xâu theo thứ tự chiều dài của từng từ

 

import sys
sys.stdin=open('D084.INP','r')
sys.stdout=open('D084.OUT','w')
n=input().split()
n.sort(key=len)
for i in range(len(n)):
    print(n[i],end=' ')

 

Đáp án bài 5: In số lượng của dãy số Collatz bắt đầu từ n

 

import sys
sys.stdin=open('D085.INP','r')
sys.stdout=open('D085.OUT','w')
n=int(input())
a=[]
a.append(n)
while n>1:
    if n%2==0:
        n=n/2
        a.append(n)
    else:
        n=n*3+1
        a.append(n)
print(len(a))

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 !

 

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

Thầy mến chào các em yêu thích môn tin học mà đặc biệt là các em yêu thích môn lập trình Python. Để chuẩn bị tốt cho kỳ thi học sinh giỏi cấp huyện, cấp tỉnh hoặc thi vào các trường Chuyên Tin vào lớp 10. Thầy sẽ làm tới 100 đề và đáp án thi HSG Tin Python mới nhất năm 2024 để các em có thể tham khảo và tập làm quen với các dạng đề để chuẩn bị thi cho tốt! Thầy chúc các em đạt được kết quả cao nhất trong kỳ thi sắp tới nhé !

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

  • 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 

Nguồn: 300bàicode.vn

Đề 5 và đáp án thi HSG Tin Python 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 “ Buổi ” trong ngàyD051*D051.INPD051.OUT
Bài 2Tính trung bình cộng những số nguyên chia hết cho 2 hoặc 3 từ m đến nD052.*D052.INPD052.OUT
Bài 3Tìm số nhỏ nhất trong mảng và vị tríD053.*D053.INPD053.OUT
Bài 4In các từ viết thường trong xâuD054.*D054.INPD054.OUT
Bài 5Kiểm tra xem số nguyên n có trong dãy số PellD055.*D055.INPD055.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng  chương trình tương ứng là Python hoặc C++

 

Bài 1: (4 điểm) Phân loại ” Buổi ” trong ngày

  • Diễn Giải: 
    1. Buổi khuya: Từ 0 giờ đến trước 5 giờ
    2. Buổi sáng: Từ 5 giờ đến trước 11 giờ.
    3. Buổi trưa: Từ 11 giờ đến trước 13 giờ.
    4. Chính ngọ: 12 giờ.
    5. Buổi chiều: Từ 13 giờ đến 18 giờ
    6. Buổi tối: Từ sau 18 giờ đến trước 0 giờ.
  • Input: Số nguyên n cho biết giờ hiện tại (0<=n<24)
  • Output: “ Buổi ” theo mô tả trên
  • Ví dụ: 
InputOutput
7Buoi sang
12Chinh ngo

Bài 2: (4 Điểm ) Tính trung bình cộng những số nguyên chia hết cho 2 hoặc 3 từ m đến n

  • Diễn Giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Có bao nhiêu số chia hết cho 7 từ m đến n;
    • tính trung bình cộng các số nguyên chia hết cho 2 hoặc 3 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:
    • Số thứ nhất là số lượng các số chia hết cho 7 từ m đến n, dấu cách,
    • số thứ 2 là trung bình cộng các số nguyên chia hết cho 2 hoặc 3 từ m đến n (làm tròn đến một chữ số thập phân),
    • Nếu không có số nào chia hết cho 2 hoặc 3 thi in “0.0”.
  • Ví dụ:
InputOutput
4

15

2 9.8
2

11

1 6.0

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

  • Diễn giải:
    • Nhập vào một mảng a có n số nguyên:a0,a1,a2,an-1
    • Tìm số nhỏ nhất trong mảng a và vị trí của số nhỏ nhất đó
  • Input: Dòng một là số nguyên n (0<n<10A), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105.
  • Output: Dòng một là số nhỏ nhất, dòng hai là vị trí của số nhỏ nhất trong mảng
  • Ví dụ:
InputOutput
7-2
96
6
3
8
10
7
2
50
204
7
6
8
0

Bài 4: (4 điểm) In các từ viết thường trong xâu

  • Diễn giải:
    • Nhập vào một xâu s. In các từ viết thường trong xâu
  • 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: Các từ Viết thường trong xâu theo thứ tự xuất hiện, trên một dòng, cách nhau bởi dấu cách
  • Ví dụ:
InputOutput
Toi hoc LAp TRINH C++ tu nam 2024hoc tu nam
Thi HOC SINH GIOI mon Tin Hocmon

Bài 5: (4 điểm) Kiểm tra xem số nguyên n có trong dãy số Pell

  • Diễn giải:
    • Nhập vào số nguyên dương n. Kiểm tra xem số nguyên n có trong dãy số Pell không?
    • Dãy số Pell là một dãy số vô hạn, trong đó mỗi số trong dãy được tính theo công thức: Pn*2‘Pn—1+Pn—2 với P0=0 và P1=1
    • Dậy số Pell: 0, 1,2, 5, 12, 29, 70, 169, 408, 985,…
    • Số 0 là số Pell thứ 0
  • Input: Một số nguyên n (0<=n<109)
  • Output: Nếu n là số Pell thì dòng một in “Yes”, dòng 2 in vị trí của số n trong dãy so Pell; ngược lại in “No”
  • Ví Dụ:
InputOutput
12Yes
4
7No

Đáp án bài 1:  Phân loại ” Buổi ” trong ngày

 

import sys
sys.stdin=open('D051.INP','r')
sys.stdout=open('D051.OUT','w')
n=int(input())
if 0<=n<5:
    print('Buoi khuya')
elif 5<=n<11:
    print('Buoi sang')
elif 11<=n<13 and n!=12:
    print('Buoi trua')
elif n==12:
    print('Chinh ngo')
elif 13<=n<=18:
    print('Buoi chieu')
elif 18<n<24:
    print('Buoi toi')

 

Đáp án bài 2:  Tính trung bình cộng những số nguyên chia hết cho 2 hoặc 3 từ m đến n

 

import sys
sys.stdin=open('D052.INP','r')
sys.stdout=open('D052.OUT','w')
m=int(input())
n=int(input())
tong7=0
for i in range(m,n+1):
    if i%7==0:
        tong7+=1
print(tong7,end=' ')
tong=0
dem=0
for i in range(m,n+1):
    if i%2==0 or i%3==0:
        tong+=i
        dem+=1
tbc=0
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)

 

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

 

import sys
sys.stdin=open('D053.INP','r')
sys.stdout=open('D053.OUT','w')
n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
M=min(a)
vt=a.index(M)
print(M)
print(vt)

 

Đáp án bài 4:  In các từ viết thường trong xâu

 

import sys
sys.stdin=open('D054.INP','r')
sys.stdout=open('D054.OUT','w')
n=input()
n=n.split()
for i in n:
    if i.islower():
        print(i,end=' ')

 

Đáp án bài 5:  Kiểm tra xem số nguyên n có trong dãy số Pell

import sys
sys.stdin=open('D055.INP','r')
sys.stdout=open('D055.OUT','w')
def Pell(n):
    pell1=[0,1]
    while pell1[-1]<=n:
        pell2=2*pell1[-1]+pell1[-2]
        pell1.append(pell2)
    return pell1
n=int(input())
a=Pell(n)
if n in a:
    print('Yes')
    print(a.index(n))
else:
    print('No')

 

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

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

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

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

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

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

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

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

 

20 đề và đáp án thi HSG tin Python C++ THPT có tài liệu ôn thi

Thầy mến chào các em đang trong giai đoạn nước rút ôn luyện thi học sinh giỏi tin học lập trình Python cấp huyện hoặc cấp tỉnh, hoặc các em đang thi vào các trường Chuyên Tin. Thầy sẽ tổng hợp được 20 đề và đáp án thi HSG tin Python C++ THPT có tài liệu ôn luyện thi pdf. từ dễ đến nâng cao. Hy vọng 20 đề  này sẽ giúp ích cho các em ôn lại kiến thức trước khi thi bước vào kỳ thi cam go sắp tới và Thầy chúc các em đạt được kết quả cao nhé!

Tải hình các đề thi

Tải bằng google driver

  • Còn em nào chưa giải đề được mà muốn học từ cơ bản đến nâng cao và đến giải đề thi vào đường link phía dưới các em nhé!
    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 

Nếu bạn nào mà mới bắt đầu thì nên vào bài để học nhé! còn các đề thi này dành cho các bạn chuẩn bị ôn thi học sinh giỏi lập trình Python rồi nhé!

Tự học Python từ cơ bản đến nâng cao giải đề Miễn Phí tài liệu pdf

Khóa học Python từ cơ bản đến nâng cao miễn phí

Khóa học Python từ cơ bản đến nâng cao miễn phí

Rồi còn chờ gì nữa mà không vào giải thử 20 đề hay và hấp dẫn nào!

Đề 1: Dành cho các bạn thuộc Cấp Độ 10:

NĂM HỌC 2022-2023

Môn: TIN HỌC

Thời gian: 90 phút (Không kể thời gian giao đề)

Ngày thi: 14/07/2024

Thứ tự

Tên bàiFile

chương

trình

File dữ liệu

vào

File kết quả

Bài 1Tính loại bãoD011.*D011.INPD051.OUT
Bài 2Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến nD012.*D012.INPD012.OUT
Bài 3Tìm số lớn nhất trong mâng và vị triD013. *D013.INPD013.OUT
Bài 4In các từ viết hoa trong xâu sD014.*D014.INPD014.OUT
Bài 5 Tính trung bình cộng các số chính phương đầu tiênD015 *D015.INPD015.OUT

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

Bài 1: (4 điểm) Tính loại bão?

  • Diễn giải: Nhập vào tốc độ gió (đơn vị km/h) của một com bào ớ ba địa điểm khác nhau, tính tốc độ gió trung bình. Cho biết cơn bão đó thuộc loại nào sau đây:
    • Nếu tốc độ gió trung bình dưới 89: Gió
    • Nếu tốc độ gió trung bình từ 89 đến 183: Bão
    • Nếu tốc độ gió trung bình trên 183 đến 220: Siêu bão
    • Nếu tốc độ gió trung bình trên 220 đến 465: Siêu cuồng phong
    • Nếu tốc độ gió trung bình >=466: Siêu bão hủy diệt
  • Input: Ba số nguyên a, b, c trên một dòng, cách nhau bờ dấu cách cho biết tốc độ gió của ở 3 địa điểm khác nhau (0<a, b, c<500).
  • Output: Tốc độ gió trung bình (một chữ số thập phân), dấu “-“, loại bão

Ví dụ:

InputOutput
100 120 114111.3-Bao
189 178 195187.3-Sieu bao

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

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Tính tổng các số nguyên chia hết cho 5 từ m đến n;
    • Tính trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
  • Output:
    • Số thứ nhất là tổng các số chia hết cho 5 từ m đến n, dấu cách, số thứ hai là trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
    • Làm tròn đến một chữ số thập phân.
    • Nếu không có số nguyên nào chia hết cho 2 và 3 thì số thứ hai là “0.0”

Ví dụ:

InputOutput
4 1530 9.0
2 1115 6.0

Bài 3: (4 điểm) Tìm số lớn nhất trong mảng và vị trí của nó?

Diễn giải:

  • Nhập vào một mảng a có n số nguyên: a0, a1, a2,…… an-1
  • Tìm số lớn nhất trong mảng a và vị trí của số lớn nhất đó

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ớn nhất và vị trí của nó trong mảng trên cùng một dòng, cách nhau bởi dấu cách

Input

Output

710 4
9
6
3
8
10
7
-2

 

520 0
20
7
6
8
0

Bài 4: (4 điểm) In các từ viết hoa trong xâu s

Diễn giải: Nhập vào một xâu s. In các từ viết hoa trong xâu s

Input: Xâu s trên một dòng, cỏ độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.

Output: Các từ viết hoa trong xâu theo thứ tự xuất hiện, trên một dòng, cách nhau bởi dấu cách.

 

Input

Output

Toi hoc LAP TRINH Python tu nam 2024LAP TRINH
Thi HOC SINH GIOI mon Tin HocHOC SINH GIOI

Bài 5: (4 điểm) Tính trung bình cộng n số chính phương đầu tiên?

  • Diễn giải:
    • Nhập vào số nguyên dương n.
    • Tính trung bình cộng của n số chính phương đầu tiên.
    • Số nguyên n được gọi là số chính phương khi n>=0 và căn bậc 2 của n là một số nguyên.
  • Ví dụ:
    • n=9 là số chính phương, căn bậc 2 của 3 là 3
    • n=15 không phải số chính phương vì căn bậc 2 của 5 là 3.872
    • Số chính phương thứ nhất là 0
    • Dãy số chính phương: 0, 1,4, 9, 16, 25, 36, 49,….
  • Input: Một số nguyên n (0<n<103)
  • Output: Trung bình cộng của n số chính phương đầu tiên, làm tròn đến 2 chữ số thập phân
InputOutput
43.50
713.00

Đáp án giải đề thi HSG Python bài 1: Tính loại bão?

import sys
sys.stdin=open('D011.INP','r')
sys.stdout=open('D011.OUT','w')
a,b,c=map(int,input().split())
TBC=(a+b+c)/3
print('%0.1f'%TBC,'-',sep='',end='')
if TBC<89:
    print('Gio')
elif 89<=TBC<=183:
    print('Bao')
elif 183<TBC<=220:
    print('Sieu bao')
elif 220<TBC<=465:
    print('Sieu cuong phong')
elif TBC>465:
    print('Sieu bao huy diet')

Đáp án bài 2: tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n

import sys
sys.stdin=open('D012.INP','r')
sys.stdout=open('D012.OUT','w')
m,n=map(int,input().split())
tong=0
dem=0
tong5=0
for i in range(m,n+1):
    if i%5==0:
        tong5+=i
print(tong5,end=' ')
for i in range(m,n+1):
    if i%2==0 and i%3==0:
        dem+=1
        tong+=i
tbc=0
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)

Đáp án bài 3: Tìm số lớn nhất trong mảng và vị trí của nó?

import sys
sys.stdin=open('D013.INP','r')
sys.stdout=open('D013.OUT','w')
n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
M=max(a)
vt=a.index(M)
print(M,vt)

Đáp án bài 4: In các từ viết hoa trong xâu s

import sys
sys.stdin=open('D054.INP','r')
sys.stdout=open('D054.OUT','w')
n=input()
n=n.split()
for i in n:
    if i.isupper():
        print(i,end=' ')

Đáp án bài 5: Tính trung bình cộng n số chính phương đầu tiên?

import sys,math
sys.stdin=open('D015.INP','r')
sys.stdout=open('D015.OUT','w')
def ktcp(n):
    if n<0:
        return -1
    x=int(math.sqrt(n))
    return x*x==n
n=int(input())
i=0
dem=0
tong=0
Tbc=0
while dem<n:
    if ktcp(i):
        tong+=i
        dem+=1
    i+=1
if dem>0:
    Tbc=tong/dem
    print('%0.2f'%Tbc)

Thầy có giải đề thi vào lớp 10 Chuyên Tin Tiền Giang năm 2024 – 2025:

Giải bài tập 1: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 2: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 3: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 4: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 5: thi vào lớp 10 Chuyên Tin Tiền Giang

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

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

 

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

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Website: vitinhtandan.com
  • Email: vitinhtandan@gmail.com

10 đề thi đáp án thi Python HSG tin học lớp 10 THCS cấp Huyện

Thầy Tấn Dân sẽ giải cho các em 10 đề thi và đáp án thi HSG ( học sinh giỏi )  tin học python lớp 10 THCS ( Trung học cơ sở ) cấp Huyện ở Tiền Giang cho các bạn tham khảo thêm nhé!

Danh sách 10 đề thi và đáp án thi HSG tin học python:

  • Rồi để các bạn cũng cố kiến thức trước khi vào giải đề các bạn hãy vào xem bài :

Tự học Python từ cơ bản đến nâng cao giải đề Miễn Phí tài liệu pdf tải về miễn phí nhé!

Khóa học Python từ cơ bản đến nâng cao miễn phí

Khóa học Python từ cơ bản đến nâng cao miễn phí

 

Tải bằng google driver

KỲ THI HỌC SINH GIỎI CẤP THÀNH PHỐ MỸ THO

TRUNG HỌC CƠ SỞ NĂM 2022 – 2023

Môn: TIN HỌC

Thời gian: 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 CÁC BÀI THI GỒM:

Tên bàiFile chưong trìnhFile dữ liệu vàoFile kết quả
Bài 1.APERTURE.*APERTURE.INPAPERTURE. OUT
Bài 2.STEP.*STEP.INPSTEP. OUT
Bài 3.SUMSQDIGIT.*SUMSQDIGIT.INPSUMSQDIGIT.OUT
Bài 4.SYNSTRING.*SYNSTRING.INPSYNSTRING.OUT
Bài 5.PERIJPOLYGON.*PERIPOLYGON.INPPERIPOLY GON.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, c++, Python hoặc phần mở rộng tương ứng với NNLT khác.

Bài 1. (4 điểm) LỖ HỎNG CHỮ SỐ ?

  • Khái niệm:
    • Cho các chữ số từ 0 đến 9, nếu một chữ số bất kỳ có một đường khép kín thì ta gọi chữ số đó có 1 lô hông,
    • Chữ số có hai đường khép kín thì ta gọi chữ số đó có 2 lỗ hổng và chữ số không có đường khép kín nào thì ta gọi chư số đo có 0 lỗ hổng.
    • Ví dụ: Chữ số 0; 4; 6; 9 có 1 lỗ hổng.
    • Chữ số 8 có 2 lỗ hổng.Chữ số 1; 2; 3; 5; 7 có 0 lỗ hổng.
  • Yêu cầu: Cho số n (n <= 1O100), đếm xem số đó có bao nhiêu lỗ hổng.
  • Dữ liệu đầu vào: Nhập vào từ file APERTURE.INP giá trị số n.
  • Dữ liệu xuất ra : Xuất ra file OUT số các lỗ hổng.
  • Ví dụ:
APERTURE.INPAPERTURE.OUT
245687898910
111112222233333555555777777777777770

Bài 2: ( 4 điểm ) SỐ BẬC THANG ?

  • Khái niệm: Biết một số được gọi là số bậc thang nếu biểu diễn thập phân của nó có nhiều hơn một chữ số,
  • Theo thứ tự từ trái qua phải và chữ số đứng sau (bên phải) lớn hon chữ số đứng trước (bên trái) 1 hoặc 2 đơn vị.
  • Số thỏa điều kiện trên được gọi là số bậc thang.
  • Yêu cầu: Cho số nguyên dương n là số lượng các số cần kiểm tra (n<=1010) và một dãy các số cần kiểm tra bậc thang ai (ai <= 1010 ), dãy các sô cần kiểm tra ai được cách nhau 1 khoảng cách. Kiểm tra có bao nhiêu số ai trong dãy số trên thỏa điều kiện là số bật thang. Đặc biệt, nếu ai <=9 thì số bậc thang bằng 0.* Dữ liệu đầu vào: Nhập vào từ file STEP.INP, dòng thứ 1 chứa số nguyên dương n, dòng thứ 2 chứa dãy các số cần kiểm tra số bộc thang,- Dừ liệu đầu ra: Xuất ra file STEP.OUT số lượng các số bậc thang.
  • Ví dụ:
STEP.INPSTEP.OUT
4

123 13468 1244 13579

3
12

12 24 35 22 100 5689 34567 25678 43567 1234679 2 1456

6

Bài 3. (4 điểm) TỔNG BÌNH PHƯƠNG CHỮ SỐ ?

  • Khái niệm: Cho một số có dạng n= 9…78 trong đó có k chữ số (n<10250). Cho sổ n=998, số x được thành lập từ số n bằng cách ghép bình phương từng chữ số từ trái sang phải của số n, ta được số x=818164. tổng các chữ số của số x là 28.
  • Yêu cầu: Hãy tính tổng các chữ số của số x, x được tạo bằng cách ghi từng chữ số của n ở dạng bình phương theo thứ tự ghi số từ trái sang phải.
  • Dữ liệu đầu vào: Nhập vào từ file văn bản SUM_SQDIGIT.INP số k (2< k< 250)
SUM_SQDIGIT.INPSUM_SQDIGIT.OUT
99828
8967999999997432222140

Hãy hỏi đáp thắc mắc tại nhóm đam mê lập trình python Việt Nam !

10 đề thi đáp án thi Python HSG tin học lớp 10 THCS cấp Huyện

cộng đồng python việt nam

Bài 4: (4 điểm) XÂU ĐỒNG BỘ DÀI NHẤT ?

  • Khái niệm: Một xâu gọi là xâu đồng bộ, nếu xâu đó có tất cả ký tự giống nhau.
  • Yêu cầu: Cho xâu s, hãy đưa ra xâu con đồng bộ dài nhất ( nếu có nhiều xâu con đồng bộ dài nhất, ta đưa ra xâu con đồng bộ dài nhất đầu tiên tính từ bên trái).
  • Dữ liệu đầu vào: Nhập từ file văn bản SYNSTRING.INP xâu S ( 1<= độ dài xâu s <=105
  • Dữ liệu đầu ra: Xuất ra file văn bàn SYNSTRING.OUT, xâu con dài nhất là xâu đồng bộ trong s.
  • Ví dụ:
SYNSTRING.INPSYNSTRING.OUT
0220322
jhfgkjgflkhgeeehhkkkkkaaaaakkkkkkkkk

Bài 5. (4 điểm) CHU VI VÀ DIỆN TÍCH ĐA GIÁC LỒI ?

  • Khái niệm: Đa giác lồi là đa giác thuộc về một phía của đường thẳng chứa cạnh bất kì của da giác.
  • Yêu cầu: Lập trình giải quyết bài toán tính chu vi và diện tích da giác lồi bất kỳ với số cạnh n>=3 và được cho bởi tọa độ đỉnh Ai, A2j A3,An.
    • Tọa độ các đỉnh của đa giác lồi tương ứng là Ai(xl,yl); A2(x2,y2); A3(x3,y3); …;An(xn,yn), (với n là số đỉnh).
    • Chu vi da giác lồi là tổng các cạnh=A1A2+A2A3+A3A(+…+A n.]An+AnAi
    • Diện tích da giác lồi bằng tổng diện tích các tam giác A1A2A3, A1A3A4,A1A4A5…A1An-1An
    • Độ dài AiA2=V(xl – xiy + (y 1 – y2Ỵ\ các cạnh còn lại tương tự.
    • Cả chu vi và diên tích được làm tròn đến hàng đơn vị. Lưu ý chi làm tròn chu vi và diện tích không làm tròn độ dài cạnh; khi xuất kết quà chu vi, diện tích vào file mới được phép làm tròn và thống nhất làm tròn đến hàng đơn vị theo quy tắc làm Ưòn toán học.
  • Dữ liệu đầu vào: Dòng đầu của tệp PERI_POLYGON.INP là số đỉnh, các dòng còn lại là tọa độ (xi,yi) của các đỉnh đa giác lồi.
  • Dữ liệu đầu ra: Dòng đầu của tệp PERI_POLYGON.OUT là chu vi, dòng thứ hai là diện tích.
  • Ví dụ:

 

PERI_POLYGON.INPPERI_POLYGON.OUT
3184
30 301462
75 15
90 75

487
9 16348
24 11
42 14
42 31

HẾT

Thí sinh được sử dụng các loại máy tính theo quy định của Bộ Giáo dục và Đào tạo cho phép, thí sinh không được sứ dụng tài liệu. Cán bộ coi thi không được giải thích gì thêm.

Đáp án thi python bài 1 LỖ HỎNG CHỮ SỐ ?

 

import sys
sys.stdin=open('APERTURE.INP','r')
sys.stdout=open('APERTURE.OUT','w')
s=list(input())
tong=0
for i in range(len(s)):
    if s[i]=='0' or s[i]=='4' or s[i]=='6'or s[i]=='9':
        tong+=1
    elif s[i]=='8':
        tong+=2
print(tong)

Đáp án thi python Bài 2: SỐ BẬC THANG ?

 

import sys
sys.stdin=open('STEP.INP','r')
sys.stdout=open('STEP.OUT','w')
def ktbatthang(n):
    s=str(n)
    if len(s)>1:
        dem=0
        for i in range(len(s)-1):
            if int(s[i+1])-int(s[i])==1 or int(s[i+1])-int(s[i])==2:
                dem+=1
        if dem==len(s)-1:
            return True
        else:
            return False
    else:
        return False
n=int(input())
a=list(map(int,input().split()))
dem=0
for i in range(len(a)):
    if ktbatthang(a[i]):
        dem+=1
print(dem)

Đáp án bài 3. TỔNG BÌNH PHƯƠNG CHỮ SỐ ?

 

import sys
sys.stdin=open('SUMSQDIGIT.INP','r')
sys.stdout=open('SUMSQDIGIT.OUT','w')
def binhphuong(s):
    n=int(s)
    n=n**2
    n=str(n)
    tong=0
    for i in range(len(n)):
        tong+=int(n[i])
    return tong

s=input()
s=list(s)
tong=0
for i in range(len(s)):
    tong+=binhphuong(s[i])
print(tong)

Đáp án bài 4:  XÂU ĐỒNG BỘ DÀI NHẤT ?

 

import sys
sys.stdin=open('DELONE.INP','r')
sys.stdout=open('DELONE.OUT','w')
def ktsub(s):
    dem=0
    t=len(s)
    s=list(s)
    for i in range(len(s)-1):
        if s[i]==s[i+1]:
            dem+=1
    return (t-1)==dem
s=list(input())
b=[]
for i in range(len(s)):
    for j in range(i+1,len(s)):
        sub=s[i:j]
        if ktsub(sub) and len(sub)>1:
            b.append(sub)
M=max(b)
print(*M,sep="")

Đáp án bài 5: CHU VI VÀ DIỆN TÍCH ĐA GIÁC LỒI ?

 

import sys,math
sys.stdin=open('PERIJPOLYGON.INP','r')
sys.stdout=open('PERIJPOLYGON.OUT','w')
n=int(input())
x=[]
y=[]
for _ in range(n):
s=input().split()
x.append(s[0])
y.append(s[1])
cv=0
for i in range(len(x)):
    cv+=math.sqrt((int(x[i-len(x)+1])-int(x[i]))**2+(int(y[i-len(x)+1])-int(y[i]))**2)
print('%0.0f'%cv)
i=0
tong_p=0
while i<len(x):
    if len(x)-1==i:
        tong_p+=(int(x[i])*int(y[0]))
        i+=1
    else:
        tong_p+=(int(x[i])*int(y[i-len(x)+1]))
        i+=1
tong_Q=0
j=0
while j<len(y):
    if len(y)-1==j:
        tong_Q+=(int(y[j])*int(x[0]))
        j+=1
    else:
        tong_Q+=(int(y[j])*int(x[j-len(y)+1]))
        j+=1
dt=(abs(tong_p-tong_Q))/2
print('%0.0f'%dt)

Chú ý: bài tập chỉ mang tính chất tham khảo nhen các bạn! bạn nào có cách giải hay hơn hoặc có thắc mắc xin hãy để lại bình luận phía dưới mình sẽ giải đáp ạ ! xin chân thành cảm ơn !

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

Giải đề 2 có đáp án thi HSG tin học python chuyên tin Tiền Giang năm 2024 – 2025

Đề thi HSG chuyên tin tiền giang 2024 - 2025

10 đề thi đáp án thi Python

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

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

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Website: vitinhtandan.com
  • Email: vitinhtandan@gmail.com