trang chủ / đề bài / knapsubcount

Đếm Tập Con Có Tổng Bằng S

Đề bài

Mô tả

Cho N số nguyên dương a1,a2,…,aN và một số nguyên S. Đếm số tập con của dãy a có tổng bằng S (mỗi phần tử chỉ được chọn tối đa một lần; hai phần tử khác vị trí được coi là phân biệt ngay cả khi chúng có cùng giá trị).

Vì đáp án có thể rất lớn, hãy in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên N và S.
  • Dòng thứ hai chứa N số nguyên a1,a2,…,aN.

Dữ liệu ra

In ra một số nguyên duy nhất: số tập con có tổng bằng S, lấy phần dư cho 109+7.

Ràng buộc

  • 1≤N≤500
  • 1≤S≤104
  • 1≤ai≤S

Ví dụ

Input Output Giải thích
4 5
1 2 3 4
2 Hai tập con có tổng 5: {1,4} và {2,3}.
3 6
2 2 2
1 Chỉ có một cách: chọn cả ba số 2.

Ghi chú

Hai phần tử cùng giá trị nhưng khác vị trí được coi là phân biệt. Ví dụ với a=[1,1], S=1, có 2 tập con (chọn phần tử thứ nhất hoặc phần tử thứ hai).

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0