摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 解题思路:线段树节点增加一个ld 区间左端点起始的最大长度,rd 区间右端点起始的最大长度,md 覆盖区间中点的最大长度,那么对于每次更新,更新到点然后更新父节点值;对于每次查询,若为中点,则返回 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2777 解题思路:比较巧妙,状态压缩 最多三十种颜色,每一位表示每个颜色状态,那么使用逻辑或运算即可避免颜色重复计算的问题,统计颜色的时候判断1的位数即可。 延迟标记的传递时候需要更改左右孩子的值以及其标记! 代码: 题目: Count 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 解题思路:线段树区间更新。写的有点杂,不过整体来说题目不算难。 注意最后那个句号。 代码: 题目: Just a Hook Time Limit: 4000/2000 MS (Java/Other 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3563 解题思路:原来并查集也可以离线。。。离线保存然后从后往前,这样每次destroy就成了unite了,那么就是带权并查集。 每个集合的根保存整个集合的最大值的以及最 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1417 解题思路:比较容易想到的是并查集,然后把第三组数据测试一下之后发现这并不是简单的并查集,而是需要合并之后然后判断的。并且鉴于题目要求输出数据,因此还要记录数据,可以说是非常有意思的题目。 首先,如果a b yes,那么a与b一定 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 解题思路:线段树区间更新,查询。主要问题在于如何解决快速对一个区间所有数据开根号然后求和 实际上是根本不用关心这个问题。2^64 在开根号7次之后已经变成1了,继续开根号没意义。 因此,对于每次更 阅读全文
摘要:
题目链接: http://poj.org/problem?id=2528 解题思路: 线段树+离散化。10000个线段,20000个点,所以线段树最大是80000。离散化的方法:首先保存每个端点,然后排序+去重(unique函数)之后从头到尾映射一下就可以了。 更新时可以从后往前进行,这样,由于前面 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1325 解题思路: 判断 连通 && 边数 == 节点数-1 && 只有一个根 即可。需要注意的是 0 0这种情况应该是 Yes 本题与Hdu1272神似 代码: 题目: Is It A Tree? Ti 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 解题思路:线段树区间更新,点查询即可。需要注意的是,线段数量n与线段的端点最大值不同,因此每次建树都要build(1, 8000, 1);另外由于题中给出的是 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3321 解题思路:dfs加时间戳然后简单树状数组单点更新区间查询即可。 代码: 题目: Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3043 阅读全文