CF1598E.Staircases
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a matrix, consisting of n rows and m 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:
- the second cell is 1 to the right from the first one, the third cell is 1 to the bottom from the second one, the fourth cell is 1 to the right from the third one, and so on;
- the second cell is 1 to the bottom from the first one, the third cell is 1 to the right from the second one, the fourth cell is 1 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 q 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.
你被给定一个由 n 行和 m 列组成的矩阵。行从上到下编号,列从左到右编号。
矩阵中的每个单元格要么是空闲的,要么是被锁定的。
我们称矩阵中的一条路径为阶梯路径(staircase),如果它满足以下条件:
- 起点和终点均为空闲单元格;
- 仅经过空闲单元格;
- 具有以下两种结构之一:
- 第二个单元格位于第一个单元格右侧一格,第三个单元格位于第二个单元格下方一格,第四个单元格位于第三个单元格右侧一格,依此类推;
- 第二个单元格位于第一个单元格下方一格,第三个单元格位于第二个单元格右侧一格,第四个单元格位于第三个单元格下方一格,依此类推。
特别地,仅包含单个单元格的路径也被视为一条阶梯路径。
以下是若干阶梯路径的示例:

初始时,矩阵中所有单元格均为空闲状态。
你需要处理 q 个查询,每个查询将翻转(切换)某一个单元格的状态:若当前为空闲,则变为锁定;若当前为锁定,则变为空闲。
在每次查询后,请输出当前矩阵中不同的阶梯路径总数。若存在某个单元格,它出现在其中一条路径中但不出现在另一条路径中,则认为这两条阶梯路径不同。
输入格式
The first line contains three integers n, m and q (1≤n,m≤1000; 1≤q≤104) — the sizes of the matrix and the number of queries.
Each of the next q lines contains two integers x and y (1≤x≤n; 1≤y≤m) — the description of each query.
第一行包含三个整数 n、m 和 q(1≤n,m≤1000;1≤q≤104)—— 分别表示矩阵的尺寸以及查询次数。
接下来的 q 行,每行包含两个整数 x 和 y(1≤x≤n;1≤y≤m)—— 描述每次查询。
输出格式
Print q integers — the i-th value should be equal to the number of different staircases after i 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.
输出 q 个整数——第 i 个值应等于执行前 i 次查询后不同楼梯路径的数量。若存在某个格子,它出现在其中一条路径中但不出现在另一条路径中,则认为这两条楼梯路径不同。
输入输出样例
输入#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测评打分。不知道怎么写?