Môn Tin họcQuản lý học tập Tin học

Thống kê mượn sách và phát hiện trùng ngày tại Thư viện số ThuVienSo

Lớp 11Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng

Thang điểm 10 · 5 test case chấm tự động · 4 tiêu chí chấm

Thư viện số ThuVienSo có log gồm n lượt mượn sách. Với lượt mượn thứ i, hệ thống lưu: thời gian mượn t[i] (đơn vị phút) và mã ngày mượn d[i] (số nguyên).

Ban quản trị cần một chương trình thực hiện hai việc nối tiếp nhau:

  • Tính tổng thời gian mượn của tất cả n lượt mượn (dùng một vòng lặp đơn cộng dồn).
  • Đếm số cặp lượt mượn (i, j) với i < j có cùng mã ngày mượn — đây là các cặp cần rà soát khả năng mượn hộ (dùng vòng lặp lồng nhau so sánh từng cặp).

Sau khi tính xong, hãy áp dụng quy tắc cộng đã học để xác định độ phức tạp thời gian tổng thể của toàn chương trình (chương trình gồm bước 1 có độ phức tạp O(n) chạy nối tiếp với bước 2 có độ phức tạp O(n^2)) và in ra bậc O-lớn đó.

Định dạng vào: dòng 1 là n; dòng 2 gồm n số nguyên là thời gian mượn (phút); dòng 3 gồm n số nguyên là mã ngày mượn.

Định dạng ra: dòng 1 là tổng thời gian mượn; dòng 2 là số cặp lượt mượn cùng ngày; dòng 3 là bậc độ phức tạp thời gian tổng thể (dạng O(n^2)).

InputOutputGiải thích
4
30 45 20 15
1 2 1 3
110
1
O(n^2)
Tổng thời gian = 30+45+20+15=110; lượt 1 và lượt 3 (chỉ số 0 và 2) cùng mã ngày 1 → 1 cặp
3
10 10 10
5 5 5
30
3
O(n^2)
Cả 3 lượt cùng ngày 5 nên có C(3,2)=3 cặp
#quy tắc cộng#vòng lặp lồng nhau#O-lớn#thiết kế thuật toán#tổng hợp#category:phat_trien_tu_duy#difficulty:applying

Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.

Giáo viên đăng nhập để giao bài