上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: description [题面][1] 给定一棵$n$个节点的树,求出不同三元组$(x,y,z)$的个数, 其中$dist(x,y)=dist(y,z)=dist(x,z)$。 solution 考虑暴力。 设$f[i][j]$表示$i$的子树中深度为$j$的点数, $g[i][j]$表示$i$子树 阅读全文
posted @ 2018-08-10 20:16 cjfdf 阅读(213) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] 给定树,支持将树上与节点$x$距离不超过$d$的节点的点权均加上$w$,单点询问点权。 solution 动态点分治第四题。 同时第一次写线段树动态开点和标记永久化。。。 ~~然后发现其实还挺简单的~~ code cpp include include inc 阅读全文
posted @ 2018-08-09 18:30 cjfdf 阅读(152) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 动态点分治第三题。 动态维护与某点距离$\le k$的所有点的点权和. 对于每一个节点开两棵线段树:一棵维护以距离为下标的点权和, 一棵维护对父亲的贡献。 没写过线段树动态开点... 于是就改成了树状数组... 弱 code cpp incl 阅读全文
posted @ 2018-08-05 21:19 cjfdf 阅读(117) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 动态点分治第二题。 动态维护带权重心和动态查询$\sum_i dist(u,i)$。 查询开一堆数组在点分树上修改就行。 找带权重心的时候从根节点开始找 每次判断的时候点分树暴力往孩子跳求答案 需要注意的是: 在点分树上往重心所在的子树跳的时 阅读全文
posted @ 2018-08-03 16:24 cjfdf 阅读(98) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 动态点分治第一题。 本来是想写 来着 动态维护最远点对 考虑每次暴力点分治的过程,相当于对于所有过重心的路径判一个最大值 于是我们在动态点分治的时候,对于每一个节点开一个堆,修改的时候往父亲维护即可 重写了至少3遍 果然我还是太弱了导致全方位 阅读全文
posted @ 2018-08-02 16:44 cjfdf 阅读(131) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 点分治+最小割。 点分必选的重心,再在树上dfs判交,转化为最大权闭合子图。 可以做$k$棵树的情况。 code cpp include include include include include include include defi 阅读全文
posted @ 2018-07-31 19:24 cjfdf 阅读(327) 评论(8) 推荐(0) 编辑
摘要: description [题面][1] solution 点分治枚举路径板板题。。 cpp void getroot(int u,int fa){ sz[u]=1;f[u]=0; for(RG int i=head[u];i;i=nxt[i]){ RG int v=to[i];if(v==fa||v 阅读全文
posted @ 2018-07-29 21:35 cjfdf 阅读(96) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 这里的单点询问需要全部的修改才能统计出答案 需要用到线段树分治的另一个形式: 在树上$DFS$维护数据结构,进入叶子的时候求出询问答案,回溯的时候栈序撤销 数据结构选择的是并查集,维护连通性和到达代表元(根节点)的路径长度奇偶性,合并的时候判 阅读全文
posted @ 2018-07-29 17:20 cjfdf 阅读(115) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 线段树分治+斜率优化简单题。 code cpp include include include include include include include include include include include include i 阅读全文
posted @ 2018-07-29 13:15 cjfdf 阅读(128) 评论(0) 推荐(0) 编辑
摘要: description [题面][1] solution 线段树分治+斜率优化 毒瘤题 题目可以简化为: 你要维护一个包含元素$(x,c)$的集合 修改操作为从以前的一个版本更新,修改内容为添加或删除一个元素 查询操作给出$x_0$,查询某个版本中的$min\{(x x_0)^2+c\}$ 可以知道 阅读全文
posted @ 2018-07-28 22:02 cjfdf 阅读(658) 评论(2) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页