• 2020 CCPC Wannafly Winter Camp Day1


    题目链接:https://ac.nowcoder.com/acm/contest/3979

    B - 密码学

    总结:看了一下题目,突然很好奇队友是怎么这么快过的,要是我写的话好像只会搞个高斯消元了。

    队友的做法

    把所有的修改操作离线,然后倒序所有的修改,因为每次操作的形式是:把第 (x) 行的数全部加给第 (y) 行,换言之就是 (y'=x+y) 。那么执行撤销操作就需要 (y=y'-x)

    高斯消元的做法

    每列是独立的,并且每列的变换矩阵还是同一个。单独抽出其中一列,比如只有2个元素。一开始的矩阵为单位矩阵,即每个元素只被自己影响。

    (quad egin{bmatrix} 1 & 0 \ 0 & 1 end{bmatrix} quad)

    把第1行加给第2行:

    (quad egin{bmatrix} 1 & 0 \ 1 & 1 end{bmatrix} quad)

    然后把最后的结果 (('P'=41, 'Q'=42))

    (quad egin{bmatrix} 41 \ 42 end{bmatrix} quad)

    作为常数接在右边,构成增广矩阵

    (quad egin{bmatrix} 1 & 0 & | & 41 \ 1 & 1 & | & 42 end{bmatrix} quad)

    调用高斯消元接口就可以解出每个变量的值。

    解一个增广矩阵的复杂度为 (O(n^3)) ,共 (n) 个增广矩阵,总复杂度为 (O(n^4)) 。但是对于同一个系数矩阵,配上不同常数项形成的增广矩阵,可以使用LU分解法,分解复杂度 $O(n^3) ,回代消元复杂度 (O(n^2)) ,总复杂度为 (O(n^3)) .

    H - 最大公约数

    打表题,打表可以发现结果,jls也有讲详细的证明。

    F - 乘法

    题解:给其中一维排序,然后二分答案x,再 (O(nlogn)) 统计有多少个比x小的。记得分正负数讨论,最好的办法是把正数和负数分开存。

    I - K小数查询

    jls的数据结构题。

    A - 期望逆序对

    昨天(2020/1/30)的Codeforces刚刚出?统计的方法有点点不同。

  • 相关阅读:
    组合,封装与多态
    继承与派生
    面向对象基础练习
    面向对象基础
    类与对象
    数组与pandas模块
    Flask基础(15)-->模板代码的复用【宏(Macro)、继承(Block)、包含(include)】
    Flask基础(14)-->自定义过滤器
    Flask基础(13)-->Flask扩展Flask-Script
    Flask基础(12)-->请求上下文和应用上下文
  • 原文地址:https://www.cnblogs.com/KisekiPurin2019/p/12244465.html
Copyright © 2020-2023  润新知