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

Hàng rào gỗ

Đề bài

Mô tả

Một công ty sản xuất ván gỗ để làm hàng rào. Có n loại ván; ván loại i là một khối chữ nhật kích thước ai×bi (chiều dài × chiều rộng). Bạn có thể đặt bao nhiêu ván tùy ý của mỗi loại.

Khi ghép ván vào hàng rào, bạn được phép xoay ván 90 (đổi chỗ chiều dài và chiều rộng cho nhau). Tuy nhiên ván vuông (ván có ai=bi) thì không được xoay.

Cần dựng một hàng rào có tổng chiều dài đúng bằng l (tổng chiều dài của tất cả các ván trong hàng rào). Một hàng rào được gọi là đẹp nếu thỏa mãn cả hai điều kiện sau:

  • Không có hai ván liên tiếp cùng loại.
  • Ván đầu tiên có chiều dài tùy ý; với mỗi ván kể từ ván thứ hai, chiều dài của nó bằng chiều rộng của ván liền trước.

Hai hàng rào được coi là khác nhau nếu dãy loại ván hoặc dãy trạng thái xoay của chúng khác nhau.

Hãy đếm số hàng rào đẹp có tổng chiều dài đúng bằng l. Vì kết quả có thể rất lớn, in ra kết quả theo modulo 109+7.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nl.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên aibi là kích thước ván loại i.

Dữ liệu ra

  • Một số nguyên duy nhất: số hàng rào đẹp có tổng chiều dài l, theo modulo 109+7.

Ràng buộc

  • 1n100
  • 1l3000
  • 1ai,bi100

Ví dụ

Input Output Giải thích
2 3
1 2
2 3
2 Có hai cách: (1) Ván loại 1 dài 1 rộng 2, rồi ván loại 2 dài 2 rộng 3, tổng chiều dài 1+2=3. (2) Một ván loại 2 sau khi xoay: dài 3 rộng 2, tổng chiều dài 3.
1 2
2 2
1 Ván vuông 2×2 không xoay được. Chỉ có cách dùng đúng một ván này, chiều dài 2. Không thể ghép hai ván cùng loại liên tiếp.
6 6
2 1
3 2
2 5
3 3
5 1
2 1
20 Có tất cả 20 hàng rào đẹp với tổng chiều dài 6.

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