Loading Now

bit manipulation,Training

Luyện tập Code

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ân1 . 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ân001, 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ới Ti .

[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

Contact