摘要: P.S.我最近挖了好多坑啊~U·ェ·U 先讲一下蓝书上提到的关于Spanning Tree 生成树的内容。 2个性质:切割(连X-Y的边权最小的边必被生成树包含)、回路(任意回路/环上的边权最大的边必不被生成树包含)。 增量最小生成树:N点的空图上依次加入一共M条边,求每加入一条的MST最小生成树权 阅读全文
posted @ 2016-11-01 20:52 konjac蒟蒻 阅读(1641) 评论(1) 推荐(0) 编辑
摘要: 题意:给一个N(N<=100)个点的联通图(无自环和平行边),求苗条度(最大边-最小边的值)尽量小的生成树。 解法:枚举+Kruskal。先从小到大排序边,枚举选择的最小的边。 阅读全文
posted @ 2016-11-01 20:23 konjac蒟蒻 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题意:如题,用表达式树来表示一个表达式,且消除公共的部分,即用编号表示。编号 K 定义为表达式第 K 个出现的字符串。 解法:先构造表达式树,给每棵子树用(string,left_son,right_son)-->(哈希值,...,...)编号。由于最多出现4个小写字母,所以可以用27进制数表示,同 阅读全文
posted @ 2016-11-01 17:17 konjac蒟蒻 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 题意:环形跑道上有N个加油站,编号为1~N。第 i 个加油站可以加油Ai加仑,从加油站 i 开到下一站需要Bi加仑汽油。问可作为起点走完一圈后回到起点的最小加油站编号。 解法:我们把每个加油站的Ai,Bi合并,把Ai-Bi看成N个点的权Ci,表示经过 i 的剩余油量。可知可通过第 i 个加油站就是s 阅读全文
posted @ 2016-11-01 11:42 konjac蒟蒻 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 题意:初始1个红气球,每小时后,1个红气球会变成3个红气球和1个蓝气球,而1个蓝气球会变成4个蓝气球。问经过N小时后,第L~R行一共有多少个红气球。 解法:问行数就定义f[i][j]表示 i 小时后前 j 行的红气球数。分情况讨论后就可得出递推方程。 注意——1.数组开不小就时间换空间,递归替代递推 阅读全文
posted @ 2016-11-01 10:55 konjac蒟蒻 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个数,每次选2个数合并为1个数,操作的开销就是这个新的数。直到只剩下1个数,问最小总开销。 解法:合并的操作可以转化为二叉树上的操作【建模】,每次选两棵根树合并成一棵新树,新树的根权值等于两棵合并前树的根权值和(也与Huffman编码的建立过程类似,选权值最小的两棵树)。 这样总开销就是除 阅读全文
posted @ 2016-11-01 08:42 konjac蒟蒻 阅读(481) 评论(0) 推荐(0) 编辑