A. 简单的序列
将‘(’视作1,‘)’视作-1。
那么问题转化为给定中间一段序列,要求前缀和恒不小于0,且权值和等于0的方案数。
暴力dp求出i位产生j个左括号剩余的方案数,显然右侧是对称的。
然后直接暴力枚举左侧有多少个左括号就完了。
需要注意中间一段应当对前缀和不断取min,得出左侧产生左括号数量的下界。
B. 简单的期望
因为最多出现n次+1,进位不会很多。
然而并不能想到可以这样构造出dp。
设$dp(i,j,k,0/1)$表示操作前$i$次,最后8位状态是$j$,从第9位开始有连续$k$位相同,第9位为0/1的概率。
这个$dp$设计巧妙地利用了高位转移次数很少的结论。
于是可以简单转移。
C. 简单的操作
刚开始错误理解了题意,然后打的很弱智。
之后发现了一些奇怪的结论:
1.如果图中存在奇环,那么必死。
因为奇环之可能被消成偶环+奇环的形式,而三元环由于它的特殊性质,无法被消掉。
所以只要dfs染色就可以判出-1的情况。
2.如果图是一棵树,那么答案是树的直径。
首先答案显然不大于直径。
存在一种方案,构造出直径:将非直径边的每一个点,由叶子节点开始,向爷爷节点连边。
3.如果图不联通,可以分别构造出直径后简单相连。
4.如果图中存在偶环,套用树的结论,缩边双之后可以视为带点权的树的直径。
然而这个点权并没有推出来是什么。
考试最后突然想到,因为只要找一条链。
为了使答案最优化,这个点权是所连的两点之间的最短路距离。
所以答案就是两点之间最大距离。
马上码了一个bfs,然而忘记了图可能不联通,于是挂成30分。