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)$。