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

Độ phức tạp ghép cặp khiêu vũ

Đề bài

Mô tả

Cho một số nguyên n. Có hai nhóm, mỗi nhóm gồm 2n thành viên được đánh số từ 0 đến 2n1.

Ta ghép cặp mỗi thành viên i của nhóm thứ nhất với thành viên ix của nhóm thứ hai, trong đó x là một số nguyên cố định cho trước và là phép XOR (hoặc loại trừ) trên biểu diễn nhị phân.

Độ phức tạp của cách ghép là số cặp ((a,b),(c,d)) thỏa mãn a<c nhưng b>d, với (a,b)(c,d) là hai cặp ghép khác nhau (nghĩa là số cặp "nghịch thế" trong hoán vị iix).

Số x được cho dưới dạng một chuỗi nhị phân độ dài n (có thể có các chữ số 0 ở đầu). Hãy tính độ phức tạp của cách ghép, lấy phần dư khi chia cho 109+7.

Dữ liệu vào

Một dòng duy nhất chứa chuỗi nhị phân x độ dài n (chuỗi có thể có các chữ số 0 ở đầu).

Dữ liệu ra

In ra một số nguyên: độ phức tạp của cách ghép, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1n100
  • x chỉ gồm các chữ số 01.

Ví dụ

Input Output Giải thích
11 6 n=2, x=3. Hoán vị ii3 trên {0,1,2,3}(3,2,1,0), có 6 nghịch thế.
01 2 n=2, x=1. Hoán vị là (1,0,3,2), có 2 nghịch thế.
1 1 n=1, x=1. Hoán vị là (1,0), có 1 nghịch thế.

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