zoukankan      html  css  js  c++  java
  • CF923E Perpetual Subtraction 解题报告

    CF923E Perpetual Subtraction 解题报告:

    题意

    给定长度为 (n) 的序列 (A),以及线性变换 (T)

    [A_ileftarrowsum_{j=0}^ifrac{A_j}{j+1} ]

    (T^mA)(1leqslant nleqslant 10^5,1leqslant mleqslant 10^{18})

    分析

    对角化。

    我们考虑求得该矩阵的特征向量,那么在这些特征向量的基空间内,该矩阵便是一个对角矩阵,那么变换到这个基空间之后 (m) 次幂就比较好求了。(原因是特征向量只会对矩阵进行拉伸,这里比较抽象,改天要具体地理解一下)

    [egin{bmatrix}1&frac{1}{2}&frac{1}{3}&cdots&frac{1}{n+1}\0&frac{1}{2}&frac{1}{3}&cdots&frac{1}{n+1}\0&0&frac{1}{3}&cdots&frac{1}{n+1}\vdots&vdots&vdots&ddots&vdots\0&0&0&cdots&frac{1}{n+1}end{bmatrix} ]

    根据上三角矩阵的特征值就是对角线上所有元素可得特征值组成的矩阵 (T') 为(即最后的对角矩阵):

    [T'=egin{bmatrix}1&0&0&cdots&0\0&frac{1}{2}&0&cdots&0\0&0&frac{1}{3}&cdots&0\vdots&vdots&vdots&ddots&vdots\0&0&0&cdots&frac{1}{n+1}end{bmatrix} ]

    根据 ((T-lambda I)x=0) 可以带入每个特征值 (k) 计算出所有特征向量:

    [egin{bmatrix}1&frac{1}{2}&frac{1}{3}&cdots&frac{1}{n+1}\0&frac{1}{2}&frac{1}{3}&cdots&frac{1}{n+1}\0&0&frac{1}{3}&cdots&frac{1}{n+1}\vdots&vdots&vdots&ddots&vdots\0&0&0&cdots&frac{1}{n+1}end{bmatrix} ]

    对向量进行变换明显可以 ntt 优化。

    代码

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/xiaoziyao/p/15269602.html
Copyright © 2011-2022 走看看