随笔分类 -  算法 - 点分治

摘要:题目:http://uoj.ac/problem/55 https://www.luogu.org/problemnew/show/P3920 参考博客:https://www.cnblogs.com/Khada-Jhin/p/10078584.html 于是写了替罪羊树,但无论怎么调参都会T,UO 阅读全文
posted @ 2019-01-14 22:21 Zinn 阅读(226) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3924 参考了博客:https://blog.csdn.net/qq_34564984/article/details/53791482 然后感觉这题其实是很好想的,为了计算答案而维护答案、权值 阅读全文
posted @ 2018-12-28 23:23 Zinn 阅读(136) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4372 本以为和 bzoj3730 一样,可以直接双倍经验了; 但要注意一下,树状数组不能查询0位置,所以再开一个 w 数组记录; 论 if 和 continue 的不同...如果要用到两个值, 阅读全文
posted @ 2018-12-27 21:34 Zinn 阅读(158) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3730 建点分树,每个点记两个树状数组,存它作为重心管辖的范围内,所有点到它的距离情况和到它在点分树上的父亲的距离情况; 于是算的时候可以减去重复的,就是跳到父亲之前把自己会被重复统计的部分减去 阅读全文
posted @ 2018-12-27 18:03 Zinn 阅读(154) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5909 点分治,每次的 rt 是必选的点; 考虑必须选根的一个连通块,可以DP,决策就是在每个子树中决定选不选子树根,如果不选就跳过这个子树; 于是可以转化成 dfs 序上的DP; 每次重新标记一遍 dfs 阅读全文
posted @ 2018-12-27 09:03 Zinn 阅读(302) 评论(0) 推荐(0)
摘要:题目:https://ac.nowcoder.com/acm/contest/296/J 用点分治; 记录了值起伏的形态,二元组 (x,y) 表示有 x 个小于号,y 个大于号; 因为小于号和大于号都 >=2 就不合法了,所以状态是 3×3 的; 然后根据各种形态拼接...写了一晚上,最后连最简单的 阅读全文
posted @ 2018-12-26 22:23 Zinn 阅读(215) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3806 就是点分治~ 每次暴力枚举询问即可,复杂度是 nmlogn; 注意 tmp[0]=1 ! 代码如下: 阅读全文
posted @ 2018-08-14 20:15 Zinn 阅读(208) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4149 仍然是点分治; 不过因为是取 min ,所以不能用容斥,那么子树之间就必须分开算,记录桶时注意这个; 每次 memset 桶会很慢,可以用栈记录修改的地方,然后改回来即可; 注意更新 getrt 中 sum 阅读全文
posted @ 2018-08-14 19:28 Zinn 阅读(220) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4178 这道题要把 dep( dis? ) 加入一个 tmp 数组里,排序,计算点对,复杂度很美; 没有写 sort 竟然还有50分! 虽然调了很久不过第一次用对拍找出了错误! 代码如下: 阅读全文
posted @ 2018-08-14 17:27 Zinn 阅读(134) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2634 今天刚学了点分治,做例题; 好不容易A了,结果发现自己写的是树形DP...(也不用找重心)(比点分治快) #include<iostream> #include<cstdio> #include<cstri 阅读全文
posted @ 2018-08-14 15:36 Zinn 阅读(222) 评论(0) 推荐(0)