zoukankan      html  css  js  c++  java
  • 1003模拟题解

    T1

    阅读题干,显然,字典序排序。

    首先很容易想到一个错误做法:

    从前往后,每一个字符与后一个进行比较,

    只要比后面的大,

    就交换。

    但是仔细想想实际上是看了样例

    然后发现显然不对。

    然后换一种贪心思路:

    我们把未排序的部分中最小的字符尽可能地前移。

    显然正确。(95分)

    由于复杂度限制,

    需要使用线段树或平衡树进行优化。不会

    T2

    首先递推从每个点出发单调下降的路径数量。

    对于每个点(x),设从(x)出发,到每颗子树中单调下降的路径数量分别为(s_1),…,(s_k),那么以该节点为海拔最高点的合法路径数量为

    [egin{equation*} left(sum_{i=1}^ks_i ight)^2-sum_{i=1}^k{s_i^2} end{equation*} ]

    将所有点的贡献相加就是答案。

    时间复杂度(O(n))

    T3

    通过(bfs)求出(dis_{x,y,0/1})表示从(x)(y)长度为偶数/奇数的最短路径,那么存在一条从(x)(y)长度为(d)的路径当且仅当(dis_{s,y,d~ ~mod~ ~2}le d)

    空间复杂度较大,可以通过把询问离线将空间复杂度优化成(O(n))

    时间复杂度(O(n^2))

    T4

    不会

  • 相关阅读:
    自定义瀑布流
    传值 属性 block 单例 协议
    sqlite数据库中 保存和读取UIData对象
    SQL
    关于在Xcode控制台打印的注意点
    synthesize的作用
    iPhone屏幕尺寸/launch尺寸/icon尺寸
    关于TableView上有一段留白的解决方法
    mac显示隐藏文件
    多线程之GCD
  • 原文地址:https://www.cnblogs.com/JingFenHuanZhe/p/MoNi1003.html
Copyright © 2011-2022 走看看