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

Lập Trình Cặp

Đề bài

Mô tả

Một chương trình gồm các lệnh thuộc hai loại:

  1. Nhân: ×d (với d[0,9])
  2. Cộng biến: +s (với s là tên biến)

Thực thi bắt đầu từ 0 và áp dụng các lệnh tuần tự. Ví dụ: [×3,+x,+y,×2,+z] cho kết quả 2x+2y+z.

Bessie và Elsie mỗi người có một chương trình gồm N lệnh. Họ xen kẽ hai chương trình để tạo thành một chương trình mới gồm 2N lệnh (giữ nguyên thứ tự tương đối trong mỗi chương trình). Các cách xen kẽ khác nhau có thể cho cùng một biểu thức.

Hãy đếm số biểu thức phân biệt có thể tạo ra, modulo 109+7.

Dữ liệu vào

  • Dòng 1: Số nguyên T (số test case)
  • Với mỗi test case:
    • Dòng 1: Số nguyên N
    • Dòng 2: Chương trình của Bessie (xâu độ dài N gồm các chữ số và '+')
    • Dòng 3: Chương trình của Elsie (xâu độ dài N gồm các chữ số và '+')

Dữ liệu ra

Với mỗi test case, in số biểu thức phân biệt modulo 109+7.

Ràng buộc

  • 1T10
  • 1N2000
  • Tổng N qua tất cả test case 2000
  • Tất cả tên biến là phân biệt

Ví dụ

Input Output Giải thích
4
1
0
1
3
12+
+02
3
0++
++9
4
5+++
+6+1
1
3
9
9
Test 1: Nhân với 0 rồi nhân với 1 luôn cho 0. Test 2: Ba cách xen kẽ khác nhau tạo 3 biểu thức phân biệt.

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