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

Tàu Vũ Trụ

Đề bài

Mô tả

N con bò với kích thước s1,s2,,sNN chuồng với kích thước t1,t2,,tN. Con bò i có thể vào chuồng j nếu sitj. Mỗi chuồng chứa tối đa một con bò.

Một ghép cặp tối đại (maximal matching) là một tập hợp các cặp (bò, chuồng) thoả mãn:

  • Mỗi con bò và mỗi chuồng xuất hiện trong tối đa một cặp.
  • Mỗi cặp (bò i, chuồng j) phải có sitj.
  • Mọi con bò chưa được ghép đều không vừa bất kỳ chuồng trống nào (tức là không tồn tại chuồng j trống nào có sitj).

Đếm số ghép cặp tối đại khác nhau modulo 109+7.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N.
  • Dòng thứ hai chứa N số nguyên s1,s2,,sN — kích thước các con bò.
  • Dòng thứ ba chứa N số nguyên t1,t2,,tN — kích thước các chuồng.

Dữ liệu ra

In ra một số nguyên duy nhất — số ghép cặp tối đại modulo 109+7.

Ràng buộc

  • 1N3000
  • 1si,tj109

Ví dụ

Input Output Giải thích
4
1 2 3 4
1 2 2 3
9 Có 9 ghép cặp tối đại. Ví dụ, có thể ghép bò kích thước 1 vào chuồng 1, bò kích thước 2 vào một trong hai chuồng kích thước 2, và bò kích thước 3 vào chuồng kích thước 3; bò kích thước 4 không vào được chuồng nào nên không ghép.
8
3 2 1 4 2 1 2 3
4 3 2 4 3 1 3 1
12072 Kết quả là 12072.

Ghi chú

Hai ghép cặp được coi là khác nhau nếu tồn tại ít nhất một cặp (bò, chuồng) thuộc ghép cặp này mà không thuộc ghép cặp kia.

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