Bài toán dấu cộng

Đề bài

Mô tả

Cho một bức tranh gồm n hàng và m cột. Các hàng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến m từ trái sang phải. Mỗi ô được tô màu đen hoặc trắng.

Ta gọi bức tranh là thú vị nếu trong đó có ít nhất một dấu cộng. Dấu cộng được xác định bởi một cặp số (x,y) với 1xn1ym, sao cho tất cả các ô ở hàng x và tất cả các ô ở cột y đều màu đen.

Bạn có một cây cọ và một hộp sơn đen. Mỗi lần, bạn có thể chọn một ô màu trắng và tô nó thành màu đen. Hãy tìm số lần tô ít nhất để bức tranh trở nên thú vị (chứa ít nhất một dấu cộng).

Bạn cần trả lời nhiều truy vấn độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q là số truy vấn.
  • Với mỗi truy vấn:
    • Dòng đầu chứa hai số nguyên nm là số hàng và số cột.
    • n dòng tiếp theo, mỗi dòng chứa m ký tự, mô tả bức tranh: ký tự . nếu ô màu trắng, ký tự * nếu ô màu đen.

Dữ liệu ra

In ra q dòng, dòng thứ i chứa một số nguyên là đáp án cho truy vấn thứ i: số lần tô ít nhất để bức tranh chứa ít nhất một dấu cộng.

Ràng buộc

  • 1q5·104
  • 1n,m5·104n·m4·105
  • Tổng n trên tất cả truy vấn không vượt quá 5·104.
  • Tổng n·m trên tất cả truy vấn không vượt quá 4·105.

Ví dụ

Input Output Giải thích
9
5 5
..*..
....
****
..*..
..*..
3 4
****
.*..
.*..
4 3
***
..
..
*..
5 5
*****
..
****
..*.
..
**
1 4
****
5 5
.....
..*..
.***.
..*..
.....
5 3
...
..
.
.
***
.*.
3 3
..
.
.
.
4 4
*.**
....
*.
*.
0
0
0
0
0
4
1
1
2
Năm bức tranh đầu đã sẵn có dấu cộng nên không cần tô. Bức thứ 6 cần tô 4 ô để có dấu cộng tại (3,3). Bức thứ 7 chỉ cần tô ô (1,2) để có dấu cộng tại (4,2). Bức thứ 8 tô ô (2,2) để có dấu cộng tại (2,2).
6
1 1
.
1 1
*
2 2
..
..
2 2


1 5
..*
5 1
*
.
*
.
*
1
0
3
0
2
2
Với lưới 1×1 toàn trắng cần tô 1 ô. Lưới toàn đen đã có dấu cộng (đáp án 0). Lưới 2×2 toàn trắng cần tô 3 ô cho một dấu cộng.

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