Trang chủ Tin Học Lớp 9 *Đề cũ rích + Code C++ or Python + giải thích Rùa gieo hạt Rùa đi làm thêm tại một...
Câu hỏi :

*Đề cũ rích + Code C++ or Python + giải thích Rùa gieo hạt Rùa đi làm thêm tại một cánh đồng có N hàng và M cột, có số hàng được đánh số từ 1N từ trên xuống dưới và có số cột được đánh số từ 1M từ trái sang phải. Nhiệm vụ của Rùa là gieo hạt vào những ô trong cánh đồng này. Rùa có một chiến thuật gieo hạt như sau: mỗi lần gieo thứ i, đầu tiên chọn hai ô (a[i],b[i]) là ô bắt đầu và ô (c[i],d[i]) là ô kết thúc và cậu chọn thêm một số x[i] là số hạt thóc sẽ gieo trong mỗi ô. Cậu sẽ rải theo đường ziczac, đầu tiên từ (a[i],b[i]) lần lượt rải từng ô và đi sang phải đến khi đụng ô cuối cùng trong hàng, cậu đi xuống một hàng và lần lượt rải sang trái cho đến khi đụng ô đầu tiên của hàng bên dưới, cậu lại xuống một hàng và rải sang phải,... cho đến khi cậu rải xong ô cuối cùng là (c[i],d[i]). Trong khi gieo hạt, Rùa quên ghi chép lại số liệu nên hiện tại không biết số hạt mỗi ô trên cánh đồng. Cho thông tin những lần gieo hạt của Rùa, hãy giúp Rùa đếm số hạt thóc mỗi ô trong cánh đồng cuối cùng có được. Input Dòng đầu tiên chứa hai số nguyên lần lượt là N và M (1N,M10^3) Dòng tiếp theo chứa một số nguyên Q, là số lần Rùa gieo thóc (1Q210^5) Q dòng tiếp theo chứa năm số nguyên dương, dòng thứ i chứa lần lượt là ai,bi,ci,di,xi (1a[i],c[i]N), (1b[i],d[i]M), (1x[i]109). Với (a[i],b[i]) là ô bắt đầu và (c[i],d[i]) là ô kết thúc. Dữ liệu đầu vào đảm bảo nếu a[i]=c[i] thì b[i]d[i] Output In ra N dòng, dòng thứ i in ra M số nguyên. Với dòng i, số thứ j là số thóc ở ô tương ứng trên cánh đồng. Sample Test Input 1 3 4 3 1 1 2 2 1 3 3 3 4 2 2 3 3 3 3 Output 1 1 1 1 1 0 1 4 4 0 0 5 5

Lời giải 1 :

Python

N, M = map(int, input().split())
Q = int(input())
field = [[0 for _ in range(M)] for _ in range(N)]

for _ in range(Q):
    a, b, c, d, x = map(int, input().split())
    a -= 1
    b -= 1
    c -= 1
    d -= 1
    if a % 2 == 0:
        for i in range(a, c + 1):
            if i % 2 == 0:
                for j in range(b, d + 1):
                    field[i][j] += x
            else:
                for j in range(d, b - 1, -1):
                    field[i][j] += x
    else:
        for i in range(a, c + 1):
            if i % 2 == 0:
                for j in range(d, b - 1, -1):
                    field[i][j] += x
            else:
                for j in range(b, d + 1):
                    field[i][j] += x

for row in field:
    print(' '.join(map(str, row)))

Trong đó, chúng ta sử dụng một mảng hai chiều field để lưu trữ số hạt thóc tại mỗi ô trong cánh đồng. Đầu tiên chúng ta đọc vào các giá trị N, M  Q. Sau đó chúng ta đọc vào các thông tin về lần gieo hạt thứ i và cập nhật số hạt thóc tại các ô trong cánh đồng theo chiến thuật gieo hạt của Rùa.

Cuối cùng chúng ta in ra kết quả.

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK