Fork me on GitHub
摘要: http://blog.csdn.net/freezhanacmore/article/details/8774033?reload 这篇讲解非常好,我也是受这篇文章的启发才做出来的。代码:#include #include #include #include #include using name... 阅读全文
posted @ 2013-12-30 20:42 whatbeg 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1.判断有向图是否是树POJ 1308 --- Is It A Tree ?题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=39051#problem/G有向图是否为树的判断条件:1.树中每个节点至多只能有一个父节点。2.树中不... 阅读全文
posted @ 2013-12-30 17:43 whatbeg 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 近期初步把线段树的一些操作给掌握了,虽然还有一些题没刷完,只有等后面再刷了。 下面我对自己理解的线段树的一些概念或操作做一个整理:(注:我写的线段树不习惯在结构体内用 l 和 r 这两个数据,能不建结构体就不建结构体——-- 这是我的原则。。因为我觉得那样代码不好看又麻烦。。(嘿嘿))一、线段树的几种操作1.单点更新,单点查询 这个是最简单的,直接查询到叶子节点(叶子节点代表一个数),然后修改,注意此时要pushup(rt),将更新传给上面的每个节点。查询的话就更好做了,在左边的话就查左边,在右边就查右边,然后当 l==r 时,表示已经到了叶子节点,此时返回tree[rt].value 。 . 阅读全文
posted @ 2013-12-30 16:30 whatbeg 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 这题要用到一点贪心的思想,因为一个点到另一个点的运载能力决定于其间的边的最小权值,所以先把线段按权值从大到小排个序,每次加的边都比以前小,然后合并集合时,比较 x = findset(a) 做根或 y = findset(b) 做根时,总权值的大小,x做根的总权值 ca = num[b]*w + c... 阅读全文
posted @ 2013-12-30 13:53 whatbeg 阅读(215) 评论(0) 推荐(0) 编辑