摘要: 定义 (均在无向图中):在一个连通图中,如果有一个顶点,删除这个点以及相关的边之后,连通块的数量增多,我们就称这个顶点为割点. 算法 tarjan。设有点x及其子节点y,如果x不是是该连通图根节点,那么当且仅当存在dfn[x] include include include include incl 阅读全文
posted @ 2019-11-01 22:26 Thomastine 阅读(284) 评论(0) 推荐(0)
摘要: 定义 (在无向图中):在一个连通图中,如果删去其中一条边后,连通块的数量会增多,那么我们称这条边为桥或者是割边. 算法 tarjan,只需要判定low[v] dfn[u]即可(u为父,v为子) 解释:如果子节点在不走原路情况下到不了父节点或父节点之前的点,那么子节点只能走原路回到父节点及之前节点,原 阅读全文
posted @ 2019-11-01 21:07 Thomastine 阅读(718) 评论(0) 推荐(0)
摘要: 题面 求n个左括号,n个右括号组成的所有序列中刚好有m对不匹配的序列总数. 分析 解法一 打表~~打了2.5小时,几度自闭~~ 解法二 易知m为0时答案即是卡特兰数,于是问题变成了合法序列个数的扩展问题。 回顾卡特兰数的证明,考虑折线法,从原点开始,遇见左括号斜向上画,遇见右括号斜向下画,所有线无论 阅读全文
posted @ 2019-11-01 18:45 Thomastine 阅读(340) 评论(0) 推荐(0)
摘要: "题面" 分析 设dp[x]为已掷出x个面后到掷出所有面状态的期望次数,每个色子每面被掷出的概率是$ \frac{1}{n} $,掷出x个面后再掷到已掷出面概率为$ \frac{i}{n} $ ,掷到未掷出面的概率为$ \frac{n i}{n} $,掷出后达到的状态分别为i与i+1,且掷出本身也增 阅读全文
posted @ 2019-10-30 22:35 Thomastine 阅读(92) 评论(0) 推荐(0)
摘要: 求指定区间是否完全覆盖某一给定区间 解法1 1. 维护每个左端点对应的最小不合法右端点(给定区间的不是指定区间的) 2. 阅读全文
posted @ 2019-10-29 22:54 Thomastine 阅读(151) 评论(0) 推荐(0)
摘要: "题面" 分析 可以先求最大生成树森林,然后对每棵树进行树链剖分,然后乱搞... 注意,由于是边权,则统一挂向连接点的更深的(挂向浅的后果自行分析),求路径上最小边时不在同一链就普通处理,在同一链,所求区间应去掉更浅的端点。 本题我以为只有只有一棵生成树~~结果CCF原数据真只有一棵~~,感谢luo 阅读全文
posted @ 2019-10-28 22:54 Thomastine 阅读(129) 评论(0) 推荐(0)
摘要: 基本版 已经很快了,oi基本够用了 高级版 究极快速输入,应该不存在(时间上)卡这个输入的了(所以小心空间); 阅读全文
posted @ 2019-10-28 19:49 Thomastine 阅读(184) 评论(0) 推荐(0)
摘要: "题目" 分析 此题有O(nlogn)做法与O(n)做法,这里只讲O(nlogn)(~~因为另一种不会~~) 我们可以使用二分(~~巨佬们的长期经验~~)来枚举平均数,在check()时将每个数减去平均数后求前缀和,最后判断合法前缀和的差与0的关系。 重点:二分求平均数,化繁为简(不减平均数而每次枚 阅读全文
posted @ 2019-10-28 16:23 Thomastine 阅读(122) 评论(0) 推荐(0)
摘要: 树的直径与重心 直径 定义 树中所有最短路径距离的最大值即为树的直径。 性质 1. 直径两端点一定是两个叶子节点 2. 距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性可以得出 3. 对于两棵树,如果第一棵树直径两端点为(u,v),第二棵树直径两端点为(x,y),用一条边将两棵 阅读全文
posted @ 2019-10-26 22:41 Thomastine 阅读(560) 评论(0) 推荐(1)
摘要: 火车头 线段树写法 不要写结构体,要分开写,不然巨慢。 推荐 "博客1" 阅读全文
posted @ 2019-10-26 14:54 Thomastine 阅读(197) 评论(0) 推荐(0)