Đề thi hsg tin tỉnh bình phước ảnh đại diện
DANH SÁCH TÓM TẮT:
Bạn đang ôn thi học sinh giỏi Tin học cấp tỉnh? Bài viết này tổng hợp và giải chi tiết các bài trong đề HSG Tin học THCS Bình Phước, kèm code Python chuẩn thi, giải thích dễ hiểu và tối ưu để bạn áp dụng ngay.
import sys
sys.stdin = open("DIEMTB.INP", "r")
sys.stdout = open("DIEMTB.OUT", "w")
# đọc dữ liệu
x, y = map(int, input().split())
# tính điểm trung bình
dtb = (3 * x + y) / 4
# kiểm tra
if dtb >= 5:
print(1)
else:
print(0) Yêu cầu:
👉 Tính tổng M chữ số tận cùng của số N
Ví dụ:
Có 2 cách:
import sys
sys.stdin = open("TINHTONG.INP", "r")
sys.stdout = open("TINHTONG.OUT", "w")
# đọc dữ liệu
n = input().strip()
m = int(input())
# lấy m chữ số cuối
last_digits = n[-m:]
# tính tổng
tong = 0
for c in last_digits:
tong += int(c)
print(tong) 👉 Ý tưởng:
% 10
import sys
sys.stdin = open("TINHTONG.INP", "r")
sys.stdout = open("TINHTONG.OUT", "w")
n = int(input())
m = int(input())
tong = 0
for _ in range(m):
tong += n % 10
n //= 10
print(tong)
| Cách | Ưu điểm | Nhược |
|---|---|---|
| Chuỗi | Dễ hiểu | Chậm hơn chút |
| Toán học | Nhanh, chuẩn HSG | Khó nghĩ hơn |
Bài này là dạng trượt cửa sổ (Sliding Window) – cực kỳ hay trong HSG 🔥
Ta cần:
Xét mọi bộ 3 số liên tiếp:
ai+ai+1+ai+2a_i + a_{i+1} + a_{i+2}
👉 Không cần tính lại từ đầu mỗi lần
→ Dùng cửa sổ trượt
sum = a[0] + a[1] + a[2]Sau đó:
⏱ Độ phức tạp: O(n) (rất nhanh)
import sys
# đọc/ghi file
sys.stdin = open("BOMAX.INP", "r")
sys.stdout = open("BOMAX.OUT", "w")
# nhập dữ liệu
n = int(input())
day = list(map(int, input().split()))
# tính tổng 3 phần tử đầu tiên
tong_hien_tai = day[0] + day[1] + day[2]
tong_lon_nhat = tong_hien_tai
vi_tri_bat_dau = 0 # vị trí bắt đầu (0-based)
# duyệt các bộ còn lại
for i in range(1, n - 2):
# cập nhật tổng bằng cửa sổ trượt
tong_hien_tai = tong_hien_tai - day[i - 1] + day[i + 2]
# nếu tìm được tổng lớn hơn thì cập nhật
if tong_hien_tai > tong_lon_nhat:
tong_lon_nhat = tong_hien_tai
vi_tri_bat_dau = i
# in kết quả (đổi sang chỉ số 1-based)
print(tong_lon_nhat)
print(vi_tri_bat_dau + 1, vi_tri_bat_dau + 3) Input:
Các bộ:
👉 Output:
> (không phải ≥)Bạn có thể gặp biến thể:
tong_hien_tai: tổng của 3 số liên tiếp đang xéttong_lon_nhat: tổng lớn nhất tìm đượcvi_tri_bat_dau: vị trí đầu của bộ 3👉 Mỗi lần:
>= → sai (phải dùng > để lấy vị trí nhỏ nhất)i + 2S (độ dài ≤ 255)P từ các chữ số trong S0P = 0👉 Lấy tất cả chữ số trong chuỗi S, ghép lại thành số lớn nhất có thể
| S | Kết quả |
|---|---|
| “a1b2c3” | 321 |
| “abc” | 0 |
| “0000” | 0 |
| “t9h2” | 92 |
import sys
sys.stdin = open("MATKHAU.INP", "r")
sys.stdout = open("MATKHAU.OUT", "w")
# nhập xâu
s = input().strip()
# lấy các chữ số
chu_so = []
for c in s:
if c.isdigit():
chu_so.append(c)
# nếu không có chữ số
if len(chu_so) == 0:
print(0)
else:
# sắp xếp giảm dần để tạo số lớn nhất
chu_so.sort(reverse=True)
# ghép lại thành số
ket_qua = "".join(chu_so)
# nếu toàn số 0
if int(ket_qua) == 0:
print(0)
else:
print(int(ket_qua)) isdigit() → kiểm tra có phải số khôngsort(reverse=True) → tạo số lớn nhất"".join() → ghép lạiint sớm → dễ lỗi với số lớn
Khóa Học Tin Học Online Thầy Dân: Luyện Thi Chuyên Tin & Tin Văn Phòng…
Bạn đang tìm kiếm nguồn tài liệu ôn thi học sinh giỏi Tin học lớp…
Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến…
Tổng Hợp Các Hàm Python "Cốt Lõi" Khi Thi HSG Tỉnh Và Vào 10 Chuyên…
Nếu bạn đang ôn thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang,…
Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp…
This website uses cookies.