CF611C.New Year and Domino

普及/提高-

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

They say "years are like dominoes, tumbling one after the other". But would a year fit into a grid? I don't think so.

Limak is a little polar bear who loves to play. He has recently got a rectangular grid with h rows and w columns. Each cell is a square, either empty (denoted by '.') or forbidden (denoted by '#'). Rows are numbered 1 through h from top to bottom. Columns are numbered 1 through w from left to right.

Also, Limak has a single domino. He wants to put it somewhere in a grid. A domino will occupy exactly two adjacent cells, located either in one row or in one column. Both adjacent cells must be empty and must be inside a grid.

Limak needs more fun and thus he is going to consider some queries. In each query he chooses some rectangle and wonders, how many way are there to put a single domino inside of the chosen rectangle?

人们常说:“岁月如多米诺骨牌,一个接一个地倾倒。”但一年能放进一个网格里吗?我想不能。

Limak 是一只可爱的小北极熊,他很喜欢玩耍。他最近得到了一个大小为 hh 行 ww 列的矩形网格。每个格子是一个正方形,要么为空(用 . 表示),要么为禁止放置(用 # 表示)。行从上到下编号为 11 至 hh,列从左到右编号为 11 至 ww。

此外,Limak 拥有一枚多米诺骨牌。他想将它放在网格中的某个位置。一枚多米诺骨牌恰好占据两个相邻的格子,这两个格子必须位于同一行或同一列。两个相邻格子都必须为空,且均需位于网格内部。

Limak 渴望更多乐趣,因此他将考虑若干查询。在每次查询中,他选定某个矩形区域,并思考:有多少种方式可将一枚多米诺骨牌完全放置于该选定矩形区域内?

输入格式

The first line of the input contains two integers h and w (1 ≤ h, w ≤ 500) – the number of rows and the number of columns, respectively.

The next h lines describe a grid. Each line contains a string of the length w. Each character is either '.' or '#' — denoting an empty or forbidden cell, respectively.

The next line contains a single integer q (1 ≤ q ≤ 100 000) — the number of queries.

Each of the next q lines contains four integers r_1_i, c_1_i, r_2_i, c_2_i (1 ≤ r_1_i ≤ r_2_i ≤ h, 1 ≤ c_1_i ≤ c_2_i ≤ w) — the i-th query. Numbers r_1_i and c_1_i denote the row and the column (respectively) of the upper left cell of the rectangle. Numbers r_2_i and c_2_i denote the row and the column (respectively) of the bottom right cell of the rectangle.

输入的第一行包含两个整数 hh 和 ww(1≤h,w≤5001 \leq h, w \leq 500),分别表示网格的行数和列数。

接下来的 hh 行描述一个网格。每行包含一个长度为 ww 的字符串,其中每个字符为 . 或 #,分别表示空单元格或禁止通行的单元格。

接下来一行包含一个整数 qq(1≤q≤100 0001 \leq q \leq 100\,000),表示查询的数量。

接下来的 qq 行中,每行包含四个整数 r1ir_{1i}、c1ic_{1i}、r2ir_{2i}、c2ic_{2i}(1≤r1i≤r2i≤h1 \leq r_{1i} \leq r_{2i} \leq h,1≤c1i≤c2i≤w1 \leq c_{1i} \leq c_{2i} \leq w),表示第 ii 个查询。其中 r1ir_{1i} 和 c1ic_{1i} 分别表示矩形左上角单元格的行号与列号;r2ir_{2i} 和 c2ic_{2i} 分别表示矩形右下角单元格的行号与列号。

输出格式

Print q integers, i-th should be equal to the number of ways to put a single domino inside the i-th rectangle.

输出 qq 个整数,其中第 ii 个整数应等于在第 ii 个矩形内放置一个骨牌(domino)的方法数。

输入输出样例

  • 输入#1

    5 8
    ....#..#
    .#......
    ##.#....
    ##..#.##
    ........
    4
    1 1 2 3
    4 1 4 1
    1 2 4 5
    2 5 5 8

    输出#1

    4
    0
    10
    15
  • 输入#2

    7 39
    .......................................
    .###..###..#..###.....###..###..#..###.
    ...#..#.#..#..#.........#..#.#..#..#...
    .###..#.#..#..###.....###..#.#..#..###.
    .#....#.#..#....#.....#....#.#..#..#.#.
    .###..###..#..###.....###..###..#..###.
    .......................................
    6
    1 1 3 20
    2 10 6 30
    2 10 7 30
    2 2 7 7
    1 7 7 7
    1 8 7 8

    输出#2

    53
    89
    120
    23
    0
    2

说明/提示

A red frame below corresponds to the first query of the first sample. A domino can be placed in 4 possible ways.

下方的红色框对应第一个样例的第一个查询。多米诺骨牌有 4 种可能的放置方式。

输入解题思路,AI测评打分。不知道怎么写?

首页