Ngoài lề: một số bài đăng gần đây của mình có đăng code thay vì đăng link đến repo lưu file .zip, đó là vì những bài đăng này được viết từ trước và mình đã lên lịch đăng nó cách nhau 2 - 3 tuần. Những bài đăng về sau mình vẫn giữ nguyên format là kèm link file zip mã nguồn. Làm vậy sẽ cung cấp được nhiều file hơn cùng đề bài và lời giải chi tiết.
Solution: Đề bài yêu cầu đổi chỗ 2 bit nằm ở 2 vị trí khác nhau, không thêm không xóa. Vậy một chuỗi bit A chỉ có thể biến đổi thành chuỗi B khi và chỉ khi số lượng bit 0 của chuỗi A bằng số lượng bit 0 của chuỗi B, tương tự với số lượng bit 1.
Code mẫu (C++):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Solution: Dễ dàng nhận thấy số D chỉ có thể đổi được nếu trong số đó chỉ có 1 chữ số 1/0 và D.length - 1 chữ số loại còn lại.
Code mẫu (C++):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bạn được cho một dãy số a[1], a[2], ... , a[N]. Tìm tổng nhỏ nhất của ai + aj, với 1 < i < j <= N.
Input: Dòng đầu tiên chứa một số nguyên T là số bộ test. Mỗi bộ test được miêu tả như sau:
Dòng đầu tiên của mỗi bộ test là số nguyên N - số phần tử của dãy số a.
Dòng tiếp theo lần lượt là các số a[1], a[2], ..., a[N], mỗi số cách nhau một dấu cách.
Output: Với mỗi bộ test, in ra màn hình một số nguyên duy nhất là kết quả của bộ test.
Ràng buộc:
T = 10^5, N = 2: 13 điểm
T = 10^5, 2 <= N <= 10: 16 điểm
T = 1000, 2 <= N <= 100: 31 điểm
T = 10, 2 <= N <= 10^5: 40 điểm
1 <= a[i] <= 10^6
Solution: phương pháp tham lam. Sắp xếp dãy a theo thứ tự tăng dần, tổng của 2 phần tử đầu tiên (cũng là 2 phần tử nhỏ nhất) là kết quả.
Code mẫu (C++):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters