• 模拟测试48


    T1:

      题意:

        给定两个字符串,可以改变任意K个字符,求出最长的公共子串。

      题解:

        暴力枚举两个串的起始位置,暴力匹配,失配字符超过K个时跳出即可。

        时间复杂度$O(N^3)$

    T2:

      题意:

        给一张无向图,求出不经过同一个点的长度为3的路径个数。

      题解:

        考虑容斥,先暴力DP所有方案,然后去除不合法方案。

        不合法方案有:两个点之间来回走,三个点之间来回走,三元环。

        两个点之间来回走方案数为:

          $sum_{i=1}^n du[i]$

        三个点之间来回走方案数为:
          $2*sum_{i=1}^n A_{du[i]}^2$

        三元环可以用bitset记录连边,然后暴力找。

        时间复杂度$O(frac{N^3}{32})$

    T3:

      题意:
        给一张有向图,每个点有一个权值,每个点都能到达权值为它的权值的子集的点,求一号点到所有点的最短距离。

        优化建图,将每个点和它的权值连边,每个权值向它去掉一个1后的点连边。

        每个点进入权值的边权为0,出来的边权为1,不然会错。

        然后边权只有0或1,、双端队列BFS即可。

        时间复杂度$O(N+M+2^K)$

  • 相关阅读:
    一种不求交点确定直线与三角形是否相交的方法
    碰撞边界锯齿的平滑方法
    demo的凹凸贴图效果
    MySQL进阶篇触发器
    MySQL进阶篇索引
    Maven的POM文件详解
    Swagger
    MySQL进阶篇存储过程
    SpringBoot基础篇
    MySQL基础篇多表操作
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11561286.html
Copyright © 2020-2023  润新知