trang chủ / đề bài / preflamp

Bật đèn theo tiền tố

Đề bài

Mô tả

Có n bóng đèn xếp thành một hàng, đánh số từ 1 đến n. Mỗi bóng đèn ban đầu ở trạng thái tắt (0) hoặc bật (1).

Cho k tập con A1,A2,…,Ak của {1,2,…,n}, thỏa mãn điều kiện: giao của ba tập con bất kỳ luôn rỗng. Nói cách khác, với mọi 1≤i1<i2<i3≤k thì Ai1∩Ai2∩Ai3=∅ (tức là mỗi bóng đèn thuộc nhiều nhất hai tập con).

Trong một thao tác, bạn chọn một tập con Aj và đảo trạng thái của tất cả các bóng đèn thuộc Aj (đèn đang bật thành tắt và ngược lại).

Dữ liệu đảm bảo rằng với các tập con đã cho, luôn có thể thực hiện một số thao tác để bật đồng thời tất cả các bóng đèn.

Gọi mi là số thao tác ít nhất cần thực hiện để i bóng đèn đầu tiên đồng thời được bật. Lưu ý rằng không có ràng buộc nào về trạng thái của các bóng đèn còn lại (từ i+1 đến n), chúng có thể bật hoặc tắt tùy ý.

Hãy tính mi với mọi 1≤i≤n.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • Dòng thứ hai chứa một xâu nhị phân độ dài n mô tả trạng thái ban đầu của các bóng đèn (bóng i tắt nếu ký tự thứ i là 0, bật nếu là 1).
  • Tiếp theo là mô tả của k tập con. Mô tả của mỗi tập con gồm:
    • Một dòng chứa số nguyên c (1≤c≤n) là số phần tử của tập con.
    • Một dòng chứa c số nguyên phân biệt x1,…,xc (1≤xi≤n) là các phần tử của tập con.

Dữ liệu ra

In ra n dòng, dòng thứ i chứa một số nguyên mi: số thao tác ít nhất để bật đồng thời các bóng đèn từ 1 đến i.

Ràng buộc

  • 1≤n,k≤3·105
  • Giao của ba tập con bất kỳ luôn rỗng.
  • Luôn tồn tại cách bật đồng thời toàn bộ các bóng đèn.

Ví dụ

Input Output Giải thích
5 3
00011
3
1 2 3
1
4
3
3 4 5
1
1
1
1
1
Chỉ cần thực hiện thao tác trên tập A1={1,2,3} là đủ để bật các bóng 1 đến 5 theo yêu cầu ở mọi tiền tố.
7 3
0011100
3
1 4 6
3
3 4 7
2
2 3
1
2
3
3
3
3
3
Với i=1 dùng A1; với i=2 dùng A1,A3; với i≥3 dùng cả A1,A2,A3.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0