zoukankan      html  css  js  c++  java
  • 模拟测试72

    T1:
      发现$n-m$极小。

      将左括号看作1,右括号看作-1,

      设$dp[i][j]$为考虑了$i$为,括号总和为$j$的方案数,期间要保证$j$时刻大于0。

      枚举左侧的长度和左侧的括号和,可以算出右侧信息。

      要处理出$s$中出现的括号和最小值$tot$,左侧枚举的括号和不得小于$tot$,不然会有落单的左括号出现。

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

    T2:

      在二进制下考虑问题。

      每次都加1,和不超过256,也就是二进制下8位。

      所以高于8位时发生的进位数不超过1。

      设$dp[i][j][k][0/1]$为操作了$i$次,后8位状态为$j$,8位以上有连续$k$个0/1的概率。

      特殊处理一下进位的情况即可。

      时间复杂度$O(2^8n^2)$。

    T3:

      首先考虑无解情况。

      显然一个三元环是不可能被缩成一条链的。

      如果有奇环,经过若干次缩点后会得到一个三元环,也是无解的。

      交叉染色法判断二分图即可。

      每个偶环都可以沿一条对叫线缩成一条链,两点之间的最短路即是最长链。

      然后把所有连通块的直径相加即可。

      时间复杂度$O(nm)$。

  • 相关阅读:
    SHELL
    终端如何输出彩色字体
    BTree和B+Tree详解
    博客项目----小功能模块
    python的学习之旅---Mysql数据库
    Python的学习之旅———协程
    python的学习之旅---信号量 定时器
    python的学习之旅---回调机制
    Python的学习之旅———线程 事件
    centos安装redis
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11678716.html
Copyright © 2011-2022 走看看