点分治
luoyuef
这个作者很懒,什么都没留下…
展开
-
动态点分治系列(幻想乡战略游戏、开店、小清新数据结构题)
以上三道题在洛谷都能找到。总结一下就是,记录分治时的父亲。 因为是子树关系的,并不关心真实的父亲是谁,所以可以放在点分树上维护两个数组来计算信息。本文代码量超长,请谨慎食用。这道题是入门题,比较简单。幻想乡战略游戏传送门//幻想乡战略游戏 #include<bits/stdc++.h> using namespace std;const int MAXN=4e5+5; #define ll lon原创 2017-12-20 14:55:56 · 234 阅读 · 0 评论 -
点分治学习笔记(1)
给定一棵有n个点的树 询问树上距离为k的点对是否存在。 输入格式: n,m 接下来n-1条边a,b,c描述a到b有一条长度为c的路径 接下来m行每行询问一个K 输出格式: 对于每个K每行输出一个答案,存在输出“AYE”,否则输出”NAY”(不包含引号)朴素的想法就是直接去枚举。但我们可以发现(我发现不了)。 对于一个点 显然只有经过他的路径和不经过他的路径。 我们不考虑不过他的路径。原创 2017-12-06 11:48:06 · 215 阅读 · 0 评论 -
聪聪可可
聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。 他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接下来由原创 2017-12-06 17:15:15 · 260 阅读 · 1 评论 -
点分治学习笔记(2) tree
今天做点分治的题,调了1个多小时,发现之前对点分治的理解是有一些偏差的。 dis【v】求出来的是那个点到根的距离。solve不断分治。cal计算其中经过根节点的所有路径,我们在cal的时候把根节点也统计进去的话,枚举的时候就算上了到根节点的路径。不统计根节点的话,就没有计算到根节点的路径。所以要单独处理。 还有一点是,多组数据我又没有初始化边数组!小ly你能不能长点记性啊,你忘了你NOIP暴力怎原创 2017-12-07 21:16:01 · 211 阅读 · 1 评论