zoukankan      html  css  js  c++  java
  • 模拟测试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)$

  • 相关阅读:
    Jedis测试redis
    jedis池的作用
    错误
    Ceph剖析:数据分布之CRUSH算法与一致性Hash
    drools规则引擎初探
    Techniques for HA IT Management
    django_simple_captcha使用笔记
    微服务架构的理论基础
    分布式系统服务的稳定性
    四层、七层负载均衡的区别
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11561286.html
Copyright © 2011-2022 走看看