| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Robot di chuyển | 7 (p) | 1.0s | 1G |
| 2 | Tạo mật khẩu | 7 (p) | 1.0s | 1G |
| 3 | Quản lý kho | 6 (p) | 1.0s | 1G |
Một nhóm học sinh đang nghiên cứu để chế tạo và lập trình một con robot. Các bạn đã tạo ra một sa bàn là một bảng hình chữ nhật kích thước \(N \times M\), với hàng được đánh số từ \(1\) đến \(N\) từ trên xuống dưới và cột được đánh số từ \(1\) đến \(M\) từ trái sang phải. Ô nằm ở vị trí giao của hàng \(X\) và cột \(Y\) gọi là ô \((X, Y)\). Ban đầu, robot được đặt ở góc trái trên của bảng, tức ô \((1, 1)\). Trên bảng, các bạn đã đặt \(K\) vật cản, vật cản thứ \(i\) được đặt ở ô \((X_i, Y_i)\).
Robot có thể được điều khiển bằng một chuỗi gồm \(Q\) lệnh. Lệnh thứ \(i\) trong các lệnh này sẽ yêu cầu robot đi theo hướng \(D_i\) (lên, xuống, sang trái, sang phải) \(C_i\) ô. Tuy nhiên, nếu thấy trước mặt là vật cản hoặc rìa của sa bàn, robot sẽ dừng lại và chuyển sang thực hiện lệnh tiếp theo trong chuỗi.
Các bạn học sinh đang lập trình để robot đánh dấu và tự đếm số lượng ô trên sa bàn mà nó đã đi qua ít nhất một lần. Tuy nhiên, các bạn không chắc chắn rằng mình đã lập trình đúng hay không. Do đó, các bạn cho bạn biết các thông tin về sa bàn, các vật cản và chuỗi lệnh mà robot cần thực thi, sau đó nhờ bạn tính toán chính xác số ô mà robot đã đi qua ít nhất một lần (tính cả ô xuất phát). Bạn hãy giúp nhóm học sinh thực hiện yêu cầu này nhé.
Test 1
3 3 2 5
1 3
3 2
R 2
D 3
L 1
D 2
U 2
5
Robot đã thực hiện chuỗi lệnh như sau:
Vậy robot đã đi qua 5 ô: \((1, 1)\), \((1, 2)\), \((2, 2)\), \((2, 1)\), \((3, 1)\).
Alice cần tạo một mật khẩu mạnh cho tài khoản mạng xã hội của cô. Cô muốn viết một chương trình tự động, chương trình này nhận vào một xâu ký tự \(S\) chỉ gồm các chữ số và chữ cái trong bảng chữ cái tiếng Anh và trả ra một xâu ký tự \(T\) là mật khẩu được tạo. Xâu \(T\) được tạo từ xâu \(S\) theo quy tắc sau đây:
Sau khi tạo được xâu \(T\), Alice tự hỏi rằng có bao nhiêu xâu \(S\) khác nhau có thể tạo ra xâu \(T\) như vậy. Bạn hãy trả lời câu hỏi này giúp Alice nhé.
Test 1
C422ac1
3
Có 3 xâu \(S\) có thể tạo thành xâu \(T\) là: 22aC, 2a2C, a22C.
Một chuỗi siêu thị có \(N\) kho hàng được đánh số từ \(1\) đến \(N\). Ban đầu, kho hàng thứ \(i\) có \(A_i\) tấn hàng. Từ sáng sớm, có rất nhiều lượt xe chở hàng đến các kho, xe thứ \(t\) sẽ bổ sung cho các kho từ \(L_t\) đến \(R_t\), mỗi kho thêm \(X_t\) tấn hàng để chuẩn bị cho ngày mới.
Trong khi các kho đang nhận hàng, quản lý sẽ liên tục kiểm tra lượng hàng thực tế trong kho và lập kế hoạch phân phối cho ngày mới:
Ban quản lý đã biết trước được kế hoạch nhận hàng của kho, cũng như các câu hỏi cần trả lời ở các thời điểm khác nhau. Do đó, họ đã chia quá trình nhận hàng, kiểm tra và lập kế hoạch phân phối thành \(Q\) sự kiện theo dòng thời gian, mỗi sự kiện thuộc một trong ba loại kể trên. Với mỗi sự kiện, ban quản lý sẽ tính toán được câu trả lời chính xác cho các câu hỏi.
1 L R X \((1 \le L \le R \le N,\ 1 \le X \le 10^4)\).2 L R \((1 \le L \le R \le N)\).3 L X \((1 \le L \le N,\ 1 \le X \le 10^5)\).Test 1
3 6
1 2 3
1 1 2 1
1 2 3 2
2 1 2
2 2 3
3 1 4
3 3 10
7
10
2
-1
Ban đầu, các kho có lần lượt là \(1, 2, 3\) tấn hàng.
Sau lượt xe đầu tiên, các kho lần lượt có \(2, 3, 3\) tấn hàng.
Sau lượt xe thứ hai, các kho lần lượt có \(2, 5, 5\) tấn hàng.
Tổng lượng hàng trong các kho từ \(1\) đến \(2\) là \(2 + 5 = 7\) tấn.
Tổng lượng hàng trong các kho từ \(2\) đến \(3\) là \(5 + 5 = 10\) tấn.
Để lấy đủ \(4\) tấn hàng bắt đầu từ kho \(1\), cần lấy \(2\) tấn ở kho \(1\) và \(2\) tấn ở kho \(2\).
Không thể lấy đủ \(10\) tấn hàng từ kho \(3\) trở về sau vì kho \(3\) chỉ có \(5\) tấn hàng và không còn kho nào khác nữa.