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

Vô vàn dãy con

Đề bài

Mô tả

Cho một dãy gồm n xâu s1,s2,,sn, mỗi xâu chỉ gồm các ký tự la-tinh thường và đã được sắp xếp (xâu bắt đầu bằng một số ký tự a, rồi đến một số ký tự b, ..., kết thúc bằng một số ký tự z; mỗi nhóm có thể rỗng).

Với một dãy xâu [t1,t2,,tm], đặt f([t1,t2,,tm]) là số xâu phân biệt (kể cả xâu rỗng) mà mỗi xâu là dãy con của ít nhất một trong các xâu ti. Quy ước f([])=0.

Có tất cả 2n tập con của dãy [s1,s2,,sn]. Với mỗi tập con (viết là [si1,si2,,sik] với 1i1<i2<<ikn), gọi g là giá trị f của tập con đó lấy theo mô-đun 998244353. Ta tính tích:

g·k·(i1+i2++ik).

Hãy in ra XOR của tất cả 2n giá trị trên (không lấy mô-đun ở bước XOR cuối cùng).

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng xâu.
  • n dòng tiếp theo, dòng thứ i chứa xâu si.

Dữ liệu ra

In ra một số nguyên là giá trị XOR mô tả ở đề bài.

Ràng buộc

  • 1n23.
  • 1|si|2·104 với mọi i.
  • Mỗi xâu si chỉ gồm ký tự la-tinh thường và đã được sắp xếp không giảm.

Ví dụ

Input Output Giải thích
3
a
b
c
92 23=8 tập con. Ví dụ tập {s1,s2,s3}: hợp các tập dãy con là {ε,a,b,c}, f=4; tích là 4·3·(1+2+3)=72. XOR của tất cả tám tích cho kết quả 92.
2
aa
a
21 f({s1})=3 (xâu rỗng, a, aa); f({s2})=2; f({s1,s2})=3. Các tích lần lượt là 3,4,12. XOR =21.
2
a
a
10 Hai xâu trùng nhau nên hợp luôn có 2 phần tử. Tích cho hai tập đơn là 24, cho tập đôi là 2·2·3=12. XOR =10.
2
abcd
aabb
124 f({s1})=16, f({s2})=9, f({s1,s2})=20. Các tích: 16,18,120. XOR =124.

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