zoukankan      html  css  js  c++  java
  • 2019牛客暑期多校训练营(第七场)

    2019牛客暑期多校训练营(第七场)


    A. String

    做法 比赛时预处理哪些子串是最小表示,然后 BFS 最短路。复杂度不是很合理,本地测试了下 300 组长度为 200 的 010101.... 串,严重 TLE,题目中数据范围的描述可能存在不严谨之处。


    B. Irreducible Polynomial

    题意 判断一个多项式能否分解成若干个实系多项式。

    做法 实系数多项式因式分解定理。多项式的非是根一定是共轭负数。

    • 比赛时想了半天,发现这个东西不会做啊。
    • RDC: 我们先求出所有根,再把这些根划分成很多个集合。
    • F0_0H: 大胆猜结论,虽然猜的没一个对的。

    C. Governing sand

    做法 按高度分类,从小到大枚举最大高度,比当前枚举的高度 h 要高的,一定删,比它小的,如果删前 ? 小的。


    E.Find the median

    solved by F0_0H 194min -1

    题意 每次插入([l[i], r[i]]),询问中位数

    做法

    • 很奇怪,数据为什么要这么搞,很容易让人想歪或者认为这是个强制在线题
    • 离散化后权值线段树上二分即可,比赛时因为没考虑好边界条件,智障了很久...

    F.Energy stones

    upsolved

    题意 吃能量

    做法 比赛中对着一个假做法自闭了很久,一直坚信其优美性和正确性

    正解:

    • 查询离线,依次计算每个石头对答案的贡献
    • (set)维护包含当前石头的区间的(ti)
    • 每次插入删除至多修改三个区间差,用树状数组维护即可
    • 这种套路上次是在维护树上联通块大小上

    I. Chessboard

    很精彩的一道题!

    做法

    • (A_i) 为第 (i) 行全为 1,其它位置全为 0 的方阵。
    • (B_j) 为第 (j) 列全为 1,其它位置全为 0 的方阵。
    • 一个 (k)(k) 列,任取 (k) 个元素,每个元素不同行不同列的方阵,一定可以由 ({A_1,A_2,....,B_1,B_2.....}) 的生成的线性空间中。也就是 (sum_{i=1}^{k}a_iA_i+sum_{j=1}^{k}b_jB_k)
    • 于是有 (sum_{i=1}^{k}a_i+sum_{j=1}^{k}b_j leq n)
    • 但很可惜,如上线性空间的基中只有 (2k-1) 个向量,因此表出方式不唯一。
    • 对于不同的表出方式,令 (d=min_{i=1}^{k} a_i) 做变换 (a_i:=a_i-d), (b_i:=b_i+d),于是我们识破了本质相同的矩阵的不同表出方式。
    • 对于一个确定的 (k),答案为 (sum_{i=1}^{k}a_i+sum_{j=1}^{k}b_j leq n(存在 a_i=0))
    • 枚举 (k),用 (sum_{i=1}^{k}a_i + sum_{j=1}^{k}b_jleq n, (a_i,b_jgeq0)) 的解数,减去 (sum_{i=1}^{k}a_i + sum_{j=1}^{k}b_jleq n, (b_jgeq0, a_igeq1)) 的解数。即可,复杂度 (O(n))

    复盘

    • 比赛时第一眼的想法:任选 (k) 个元素,之和相等,等价于任意子矩阵对角之和相等。建立线性方程组,第一行第一列的是主元,其它是自由元。
    • 然后就没有然后了。
    • 把矩阵中的元素当成变量,不失为一种合理的想法,但只有这个想法,就是视野狭窄了。
    • 题解中的做法,把行和列当成了变量。
    • 从行和列的角度考虑一个矩阵,这是常见的思路。

  • 相关阅读:
    HDU4812 D Tree(树的点分治)
    BZOJ1834 [ZJOI2010]network 网络扩容(最小费用最大流)
    HDU4862 Jump(放大边权的费用流)
    SCU3185 Black and white(二分图最大点权独立集)
    HDU3729 I'm Telling the Truth(字典序最大的最大流)
    HDU3586 Information Disturbing(树形DP)
    HDU3657 Game(最小割)
    POJ3162 Walking Race(树形DP+尺取法+单调队列)
    SCU3312 Stockholm Knights(最大流)
    Codeforces 161D Distance in Tree(树的点分治)
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/11322585.html
Copyright © 2011-2022 走看看