trang chủ / bài tập / weightlift

Nâng tạ

Đề bài

Mô tả

Duff có N quả tạ. Quả tạ thứ i có khối lượng đúng bằng 2wi pound.

Mỗi bước, Duff chọn một tập con khác rỗng gồm các quả tạ còn lại rồi vứt bỏ tất cả chúng. Tuy nhiên cô chỉ được phép vứt tập các quả tạ 2a1,2a2,,2ak nếu tổng khối lượng của chúng là một luỹ thừa của 2, nghĩa là tồn tại số nguyên không âm x sao cho:

2a1+2a2++2ak=2x

Duff lặp lại thao tác trên cho tới khi không còn quả tạ nào. Hãy tìm số bước ít nhất cần thực hiện.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N là số quả tạ.
  • Dòng thứ hai chứa N số nguyên w1,w2,,wN là số mũ của các quả tạ.

Dữ liệu ra

Một số nguyên duy nhất là số bước ít nhất.

Ràng buộc

  • 1N106
  • 0wi106

Ví dụ

Input Output Giải thích
5
1 1 2 3 3
2 Bước một vứt ba quả đầu: 2+2+4=8=23. Bước hai vứt hai quả còn lại: 8+8=16=24. Không thể làm trong một bước vì tổng tất cả bằng 24, không phải luỹ thừa của 2.
4
0 1 2 3
4 Tổng của mọi tập con có từ hai quả trở lên đều không phải luỹ thừa của 2, nên mỗi bước chỉ vứt được đúng một quả.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0