Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Đóng thùng

100 điểm

Linh có \(n\) món đồ, và muốn cho hết chúng vào các thùng.

Món đồ thứ \(i\) nặng \(w_i\).
Biết rằng mỗi thùng chỉ chịu được tổng cân nặng không vượt quá \(W\).
Hỏi số lượng thùng ít nhất Linh phải dùng là bao nhiêu?

\InputFile
Dòng đầu tiên gồm hai số nguyên \(n\) và \(W\).

Dòng thứ hai gồm \(n\) số nguyên \(w_i\).

\OutputFile
In ra số thùng ít nhất Linh cần dùng.

Điều kiện

  • \(1 \le n \le 20\).
  • \(1 \le w_i \le W \le 10^9\).

Example

Test 1

Input
4 5
1 2 3 4
Output
2

root

Tô vạch

100 điểm

Bạn được cung cấp một bức ảnh có kích thước \(n \times m\) điểm ảnh. Mỗi điểm ảnh là màu trắng hoặc đen.

Nhiệm vụ của bạn là thay đổi càng ít điểm ảnh càng tốt để bức ảnh trở thành một mã vạch hợp lệ.

Một bức ảnh được xem là mã vạch nếu thỏa mãn hai điều kiện sau:

  • Mỗi cột chỉ có một màu duy nhất (hoặc toàn trắng, hoặc toàn đen).
  • Khi nhóm các cột liền kề có cùng màu lại, kích thước của mỗi nhóm phải nằm trong đoạn \([x, y]\).

Mục tiêu: Tìm số điểm ảnh ít nhất cần tô lại để bức ảnh trở thành mã vạch hợp lệ.

\InputFile

  • Dòng đầu tiên chứa bốn số nguyên \(n, m, x, y\) (\(1 \le n \times m \le 10^6, x \le y \le 10^6\)).
  • Tiếp theo là \(n\) dòng, mỗi dòng gồm đúng \(m\) ký tự, mô tả bức ảnh ban đầu.
  • Mỗi ký tự là '.' (điểm trắng) hoặc # (điểm đen).

\OutputFile

In ra một số nguyên duy nhất --- số điểm ảnh ít nhất cần tô lại. Đảm bảo rằng luôn tồn tại cách làm thỏa mãn yêu cầu.

\Scoring

  • Subtask 1 (22 điểm): \(n \cdot m \le 20\)
  • Subtask 2 (18 điểm): Tất cả các ô đều có màu trắng.
  • Subtask 3 (30 điểm): \(m \le 1000\)
  • Subtask 4 (30 điểm): Không có giới hạn gì thêm

Example

Test 1

Input
6 5 1 2
##.#.
.###.
###..
#...#
.##.#
###..
Output
11

Test 2

Input
2 5 1 1
#####
.....
Output
5

root

Câu 3 (4.0 điểm). Cặp số bằng nhau

100 điểm

Cho hai dãy số nguyên dương \(a_1, a_2, \ldots, a_N\) và \(b_1, b_2, \ldots, b_M\).

Hỏi có bao nhiêu cặp số \((i, j)\), \(1 \le i \le N\), \(1 \le j \le M\) sao cho \(a_i = b_j\)?

Input

Vào từ tệp văn bản CAPSO.INP gồm:

  • Dòng 1 ghi hai số nguyên dương \(N, M\);
  • Dòng 2 ghi \(N\) số \(a_1, a_2, \ldots, a_N\) \((a_i \le 10^6)\);
  • Dòng 3 ghi \(M\) số \(b_1, b_2, \ldots, b_M\) \((b_j \le 10^6)\).

Output

Ghi ra tệp văn bản CAPSO.OUT một số duy nhất là kết quả của bài toán.

Example

Test 1

Input
3 4
1 5 0
0 1 7 5
Output
3

Scoring

  • Subtask 1: Có 25 test (62,5%) tương ứng 2,5 điểm với \(N, M \le 10^3\);
  • Subtask 2: Có 10 test (25%) tương ứng 1,0 điểm với \(10^3 < N, M \le 10^5\);
  • Subtask 3: Có 5 test (12,5%) tương ứng 0,5 điểm với \(10^5 < N, M \le 10^7\).

root

Nhà giả kim số học

100 điểm

Ở một vùng đất xa xôi, nơi những con số có linh hồn riêng, một nhà giả kim số học tên Linh đã phát minh ra một trò chơi trí tuệ với tên gọi Hợp Nhất Vô Cực.

Linh tạo ra một bảng chứa \(N\) số nguyên dương, được viết thẳng hàng trên mặt phẳng ma thuật. Mỗi số trong bảng mang một nguồn năng lượng đặc biệt, và khi hai số giống nhau đứng cạnh nhau, Linh có thể kết hợp chúng thành một số mới, lớn hơn hai số ban đầu một đơn vị.

Sau khi kết hợp, hai viên đá cũ biến mất, và thay vào ngay điểm đó bằng viên đá mới. Mục tiêu của Linh là kết hợp sao cho, số lớn nhất trên các viên đá trên dãy là lớn nhất.

Input

  • Dòng đầu tiên chứa số nguyên \(N\) \((1 \leq N \leq 10^5)\) - số lượng các số trong bảng.
  • Dòng thứ hai chứa \(N\) số nguyên dương, mỗi số không vượt quá \(40\) - các số trên bảng.

Output

  • Ghi ra một số nguyên duy nhất - số lớn nhất có thể đạt được sau khi thực hiện các phép hợp nhất tối ưu.

Example

Test 1

Input
3
1 1 2
Output
3
Note

Các bước gộp thay đổi bảng thành \([1, 1, 2] -> [2, 2] -> [3]\)

Scoring

  • Với \(30\%\) số test, \(N \leq 1000\).
  • Với \(70\%\) số test còn lại, không có ràng buộc gì thêm.
Xem thêm