模拟测试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)$。

posted @ 2019-10-15 16:47  hz_Rockstar  阅读(170)  评论(0编辑  收藏  举报