
bit manipulation,Training
Bạn được cho 1 vector T gồm các số, với mỗi số Ti
bạn hãy đếm số lượng bit 1 khi được viết dưới dạng nhị phân của các số từ 1 tới Ti
.
Ví dụ: T = (3,1,5)
thì đáp án là (4,1,7)
.
- Với
T0 = 3
thì ta có3
số là1,2,3
mỗi số khi biểu diễn dưới dạng nhị phân lần lượt là:01, 10, 11
. Tổng cộng có 4 bit 1. - Với
T1 = 1
thì ta có1
số là1
được biểu diễn dưới dạng nhị phân là1
. Tổng cộng có 1 bit 1. - Với
T2 = 5
thì ta có5
số là1,2,3,4,5
mỗi số khi biểu diễn dưới dạng nhị phân là001, 010, 011, 100, 101
. Tổng cộng có 7 bit 1.
[Đầu vào/Đầu ra]:
- Giới hạn thời gian]: 1s với C++, 6s với Java & C#, 8s với Python,Go,Js.
- [Đầu vào]: 1 vector T gồm các số
Ti
(1 ≤ T.size() ≤ 105)
(1 ≤ Ti ≤ 1015).
- [Đầu ra]: 1 vector có kích thước tương đương với vector T, mỗi số biểu thị số bit 1 từ
1
tớiTi
.
[Mô tả về các test]:
- Test 1 -> 3:
1 ≤ T.size() ≤ 10, 1 ≤ Ti ≤ 10.
- Test 4 -> 6:
1 ≤ T.size() ≤ 103, 1 ≤ Ti ≤ 103.
- Test 7 -> 9:
1 ≤ T.size() ≤ 10, 1 ≤ Ti ≤ 106.
- Test 10 -> 12:
1 ≤ T.size() ≤ 102, 1 ≤ Ti ≤ 109.
- Test 13 -> 15:
1 ≤ T.size() ≤ 105, 1 ≤ Ti ≤ 109.
- Test 16 -> 18:
1 ≤ T.size() ≤ 105, 1 ≤ Ti ≤ 1015.
- Test 19:
T.size() = 105.
Post Comment