摘要: "题目" 给出$n$个互异的正整数序列,$c_1,c_2...c_n$。定义一颗带点权树的权值为所有点的权值和。给出一个整数$m$,请计算对于所有的$i=1,2,3...,m$,用$c$中的数能组成多少不同的二叉树(每个数可以重复使用)且二叉树的权值为$i$。答案对$7 17 2^{23}+1=99 阅读全文
posted @ 2017-04-17 20:17 permui 阅读(781) 评论(2) 推荐(1) 编辑
摘要: 学会网络流算法后,我们要做的就是把问题转化成网络流问题。 搭配飞行员 求二分图最大匹配。 分析 网络流建模要找到问题的关键特点,用连边,流量(以及费用)把原问题转化成网络流问题,包括最大流,最小割,费用流。 二分图最大匹配的特点是 每个点最多属于一条匹配边 。这相当于是说,每个点只能流过一次。要求的 阅读全文
posted @ 2017-04-17 20:16 permui 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 终于写了一次可持久化Treap,做的是可持久化序列的模板题。 Treap Treap=Tree+Heap,是一个随机化的数据结构。它的每个节点至少有两个关键字,一个是我们要存储的$val$,一个是随机堆关键字,我把它称为$hp$。Treap满足的性质是$val$从小到大,并且每个节点的$hp$都小于 阅读全文
posted @ 2017-04-17 20:15 permui 阅读(2007) 评论(2) 推荐(0) 编辑
摘要: 如果需要动态维护后缀数组,支持在字符串前端插入一个字符,询问后缀的大小关系,如何做呢? 这是一个不断插入的问题,可以从增量的角度考虑。我们在前端插入一个字符,其实就是插入了一个新的后缀。我们的问题其实就是这个后缀排名多少。我们可以用平衡树维护一下后缀数组,从根节点开始二分比较这个后缀的大小,看看它应 阅读全文
posted @ 2017-04-17 20:14 permui 阅读(1817) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个边带正权的连通无向图$G=(V,E)$,其中$N=|V|$,$M=|E|$,$N$个点从$1$到$N$依次编号,给定三个正整数$u$,$v$,和$L$ $(u≠v)$,假设现在加入一条边权为$L$的边$(u,v)$,那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也 阅读全文
posted @ 2017-04-17 20:13 permui 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 给出平面上一些点,和连接它们的带权有向边,求把所有点连起来的最小总权值。 分析 由于这里边是有向的(unidirectional),所以这是经典的最小树形图问题,可以说是最小树形图的模板题。 代码 这个写法是我乱想的。最近写图啊树啊都喜欢开一个结构体~ 这个代码在poj上交,如果用g++的话会WA, 阅读全文
posted @ 2017-04-17 20:13 permui 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 最小树形图是在一个有向图中,找到一颗有向树使得边权和最小。 <! more 首先问题是为什么不能直接用kruskal或prim来做。考虑这个例子: 由于$1\to 3,1\to 2$的边权是一样的,所以都有可能被第一次选到,而如果选了$1\to 3$,那么很明显是错误的。但是如果是无向图就不会有这个 阅读全文
posted @ 2017-04-17 20:12 permui 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 给出一个有向图,求最小树形图和它的最小的根。 分析 这个题又写了一晚上~我之前的朱刘算法写法是我乱想的,只有那道题可以过……所以去找了一份代码来看,发现我的写法超级麻烦啊,所以就学习了一下那种写法,非常漂亮,但是有一些判断要考虑。 这是一个不定根问题,经典解决方法是添加一个超级根,向每个点连一条长度 阅读全文
posted @ 2017-04-17 20:11 permui 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 多次学然后多次不会之后,我决定写一篇东西来记录一下这个方法。 我们要做的是线性递推出$[1,p)$的所有数的逆元。 $$ p=ai+b \\ ai+b\equiv 0\mod p \\ ai\equiv b \\ i^{ 1}\equiv ab^{ 1} $$ 由于$a=\lfloor \frac{ 阅读全文
posted @ 2017-04-17 20:10 permui 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 给出$n,m,x,S$,其中$S\subseteq [0,m)$,问有多少个长度为$n$的数列$a$使得$a_i\in S$,并且数列中所有元素的乘积mod $m$为$x$。 答案对$1004535809=479\times 2^{21}+1$取模。$m$为质数。$n\le 10^9,m inclu 阅读全文
posted @ 2017-04-17 20:10 permui 阅读(220) 评论(0) 推荐(0) 编辑