CF1598E.Staircases

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given a matrix, consisting of nn rows and mm columns. The rows are numbered top to bottom, the columns are numbered left to right.

Each cell of the matrix can be either free or locked.

Let's call a path in the matrix a staircase if it:

  • starts and ends in the free cell;
  • visits only free cells;
  • has one of the two following structures:
    1. the second cell is 11 to the right from the first one, the third cell is 11 to the bottom from the second one, the fourth cell is 11 to the right from the third one, and so on;
    2. the second cell is 11 to the bottom from the first one, the third cell is 11 to the right from the second one, the fourth cell is 11 to the bottom from the third one, and so on.

In particular, a path, consisting of a single cell, is considered to be a staircase.

Here are some examples of staircases:

Initially all the cells of the matrix are free.

You have to process qq queries, each of them flips the state of a single cell. So, if a cell is currently free, it makes it locked, and if a cell is currently locked, it makes it free.

Print the number of different staircases after each query. Two staircases are considered different if there exists such a cell that appears in one path and doesn't appear in the other path.

你被给定一个由 nn 行和 mm 列组成的矩阵。行从上到下编号,列从左到右编号。

矩阵中的每个单元格要么是空闲的,要么是被锁定的。

我们称矩阵中的一条路径为阶梯路径(staircase),如果它满足以下条件:

  • 起点和终点均为空闲单元格;
  • 仅经过空闲单元格;
  • 具有以下两种结构之一:
    1. 第二个单元格位于第一个单元格右侧一格,第三个单元格位于第二个单元格下方一格,第四个单元格位于第三个单元格右侧一格,依此类推;
    2. 第二个单元格位于第一个单元格下方一格,第三个单元格位于第二个单元格右侧一格,第四个单元格位于第三个单元格下方一格,依此类推。

特别地,仅包含单个单元格的路径也被视为一条阶梯路径。

以下是若干阶梯路径的示例:

初始时,矩阵中所有单元格均为空闲状态。

你需要处理 qq 个查询,每个查询将翻转(切换)某一个单元格的状态:若当前为空闲,则变为锁定;若当前为锁定,则变为空闲。

在每次查询后,请输出当前矩阵中不同的阶梯路径总数。若存在某个单元格,它出现在其中一条路径中但不出现在另一条路径中,则认为这两条阶梯路径不同。

输入格式

The first line contains three integers nn, mm and qq (1≤n,m≤10001 \le n, m \le 1000; 1≤q≤1041 \le q \le 10^4) — the sizes of the matrix and the number of queries.

Each of the next qq lines contains two integers xx and yy (1≤x≤n1 \le x \le n; 1≤y≤m1 \le y \le m) — the description of each query.

第一行包含三个整数 nn、mm 和 qq(1≤n,m≤10001 \le n, m \le 1000;1≤q≤1041 \le q \le 10^4)—— 分别表示矩阵的尺寸以及查询次数。

接下来的 qq 行,每行包含两个整数 xx 和 yy(1≤x≤n1 \le x \le n;1≤y≤m1 \le y \le m)—— 描述每次查询。

输出格式

Print qq integers — the ii-th value should be equal to the number of different staircases after ii queries. Two staircases are considered different if there exists such a cell that appears in one path and doesn't appear in the other path.

输出 qq 个整数——第 ii 个值应等于执行前 ii 次查询后不同楼梯路径的数量。若存在某个格子,它出现在其中一条路径中但不出现在另一条路径中,则认为这两条楼梯路径不同。

输入输出样例

  • 输入#1

    2 2 8
    1 1
    1 1
    1 1
    2 2
    1 1
    1 2
    2 1
    1 1

    输出#1

    5
    10
    5
    2
    5
    3
    1
    0
  • 输入#2

    3 4 10
    1 4
    1 2
    2 3
    1 2
    2 3
    3 2
    1 3
    3 4
    1 3
    3 1

    输出#2

    49
    35
    24
    29
    49
    39
    31
    23
    29
    27
  • 输入#3

    1000 1000 2
    239 634
    239 634

    输出#3

    1332632508
    1333333000

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

首页