Nếu bạn đã làm hết đề cũ rồi thì mình cho bạn vài bài đây. Vài bài trong này cho dù học sinh lớp 10 chuyên tin muốn giải cũng phải xuất lực đấy nhé
Bài 1 (**):
Cho một mảng A gồm N số nguyên dương. Viết chương trình in ra một mảng B, biết rằng B
là tích tất cả các phần tử trong mảng ngoại trừ A. Tức có nghĩa rằng: B = A[1] * ... * A[i-1] * A[i+1] * ... * A[N].
Giới hạn: 1 < N < 10^5, 0 < A < 2 * 10^4.
Bài 2 (*):
Cho N điểm có tọa độ nguyên trong mặt phẳng tọa độ Oxy. Viết chương trình cho biết số điểm tối đa có thể nhìn thấy từ gốc tọa độ O với góc nhìn là 45 độ.
Giới hạn: 0 < N < 10^6, -10^7 < X, Y < 10^7, và không có điểm nào ở gốc O.
Bài 3 (*):
Cho N số nguyên và một số nguyên x. Viết chương trình kiểm tra xem có tồn tại hay không 3 chỉ số i, j, k đôi một khác nhau sao cho A + A[j] + A[k] = x.
Giới hạn: 2 < N < 1000, 0 < A < 1000, 0 < x < 3000.
Bài 4 (***):
Cho N số nguyên. Viết chương trình kiểm tra xem có thể chia N số thành 2 tập hợp riêng biệt X và Y sao cho tổng các số trong X và Y là bằng nhau.
Giới hạn: 2 < N < 1000, 0 < A < 1000.
Bài 5 (**):
Cho N chuỗi, trong đó có nhiều chuỗi là hoán vị của nhau. Những chuỗi là hoán vị của nhau được gọi là một nhóm. Viết chương trình cho biết có bao nhiêu nhóm trong N chuỗi.
Giới hạn: 0 < N < 10^5, 0 < length(A) < 10, và các ký tự của chuỗi chỉ gồm 'a' tới 'z'.
Bài 6 (****):
Cho một bảng M x N gồm 3 loại ký tự:
- 'E': ô có địch thủ.
- 'O': ô trống, có thể đặt bomb.
- 'W': ô có tường.
Biết rằng một trái bomb chỉ được đặt tại ô 'O'. Sức nổ của trái bomb sẽ phá hủy toàn bộ dòng và cột tại vị trí của trái bomb cho tới khi gặp ô có tường 'W'. Chỉ được phép dùng 1 trái bomb, viết chương trình cho biết tối đa có bao nhiêu địch thủ bị tiêu diệt.
Giới hạn: 0 < M, N < 1000.
Bài 7 (*):
Cho một số nguyên dương N. Viết chương trình in ra tất cả các cách phân tích N thành tích các số nguyên dương.
Ví dụ: N = 12. In ra [[12, 1], [6, 2], [4, 3], [3, 2, 2]]
Giới hạn: 0 < N < 500.
Bài 8 (*):
Cho một chuỗi S tượng trưng cho một câu. Viết chương trình đảo ngược các từ trong câu.
Vị dụ: "Hom nay troi dep". In ra "dep troi nay Hom".
Giới hạn: 0 < length(S) < 10^4.
Bài 9 (**):
Cho một mảng A gồm N số nguyên. Viết chương trình in ra mảng B, biết rằng B là chỉ số nhỏ nhất của phần tử trong đoạn A[i+1...N] lớn hơn A (có nghĩa rằng: A < A[B]); B = -1 nếu không có phần tử nào bên phải A mà lớn hơn A.
Giới hạn: 1 < N < 10^6, 0 < A < 10^9.