• 模拟72 题解


    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分。

  • 相关阅读:
    算法演示工具
    1198:逆波兰表达式
    1315:【例4.5】集合的划分
    1192:放苹果
    1191:流感传染
    1354括弧匹配检验
    1331【例1-2】后缀表达式的值
    1307高精度乘法
    1162字符串逆序
    1161转进制
  • 原文地址:https://www.cnblogs.com/skyh/p/11669471.html
Copyright © 2020-2023  润新知