维护一个向量, 有三种操作

  1. 将第$i$个数加1
  2. 将第$i$个数置0
  3. 交换第$i$个数和第$j$个数

Solution

矩阵乘法/快速幂

Implementation

我们将向量写成列向量的形式.
为了支持+1操作需要将向量加一维, 这一维始终是1.
有一个坑:
当若干个转移矩阵$A_1, A_2, \dots, A_n$(方阵)依次作用于某个向量时, 这些向量的合向量$B$应当写成
$$B=A_n\cdot A_{n-1} \cdot \dots \cdot A_{1}$$
这一点很容易弄反.

一开始我仿照《挑战程序设计竞赛》上的写法,用vector<vector<int>>表示矩阵,结果TLE.
无奈改成二维数组,轻松AC。还是要慎用STL。

相关文章:

  • 2021-06-21
  • 2021-06-28
  • 2021-07-25
  • 2022-12-23
  • 2022-01-14
  • 2021-07-22
猜你喜欢
  • 2021-08-24
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
  • 2021-06-14
  • 2022-12-23
相关资源
相似解决方案