E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ2152
【蒟蒻的点分治专题训练】----5道题题解
附题:poj1741,hdu4812,codeforces161D,bzoj3697,
bzoj2152
先来一波总结:好好做了这几道题之后,发现树上的点分治几乎可以说是模板题,每道题改变的地方都只有处理过当前子树根节点的路径
deritt
·
2020-08-12 10:58
oi之路
BZOJ2152
聪聪可可 点分治
此题明显可以点分治解决,对每层分治块递归子块,求出块内有多少距离%3=0,1,2的节点,与之前其他块的信息归并,即ans+=f[0]*g[0]+f[1]*g[2]+f[2]*g[1],再把g加到f上面去即可注意点分治求重心一定注意不要打错字母(打混x,y之类的)注意此题题意诡异,点对要*2+n(单点也算,反过来算两次)分母是n*n而不是n*(n-1)/2#include#includeusingn
liuguangzhe1999
·
2020-07-04 22:36
点分治
【BZOJ】聪聪可可-点分治
传送门:
bzoj2152
题意在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。
ccosi
·
2018-04-15 19:33
点分治
12.1题目总结
bzoj2599给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小点分治map维护
bzoj2152
聪聪可可点分治int维护hdu4812给定一棵n个点的树,每个点有权值Vi问是否存在一条路径使得路径上所有点的权值乘积
djyanglinhan
·
2017-12-03 21:02
各类总结
[
BZOJ2152
]聪聪可可(点分治)
题目描述传送门题解树上的路径问题可以通过点分治来解决。但是关键问题是“3的倍数”如何满足?假设两点的距离记为两点到根的深度之和,那么一棵树内的合法点对可以表示为:(所有深度%3=0的点)^2+所有深度%3=1的点*所有深度%3=2的点*2。正确性显然。那么每一次遍历只需要统计每个点深度%3的值就可以了,每一次的结果都可以O(1)计算。总时间复杂度为O(nlogn)。代码#include#inclu
Clove_unique
·
2016-09-20 14:20
题解
点分治
bzoj2152
聪聪可可
2152:聪聪可可TimeLimit: 3Sec MemoryLimit: 259MBSubmit: 1692 Solved: 882[Submit][Status][Discuss]Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已
AaronGZK
·
2016-05-13 00:00
树形DP
bzoj
树的点分治
【
BZOJ2152
】聪聪可可【点分治】
【题目链接】十年OI一场空,APIO见祖宗。点分治没有什么特殊的地方。在计数的时候,将边权模3,统计在模3意义下的深度,设tim[x]表示深度为x的点的个数,那么答案为tim[1]*tim[2]*2+tim[0]*tim[0]。/*TelekineticForestGuard*/ #include #include #include usingnamespacestd; constintmax
BraketBN
·
2016-05-07 18:00
【
BZOJ2152
】聪明的可可 树的点分治
题目大意:给定一棵n #include #include #include #include #include #include #include usingnamespacestd; #definemaxn20005 structedge { intto,d,next;boolban; }e[maxn*2]; intn,edge_ct,head[maxn],sz[ma
qq_34637390
·
2016-04-21 20:00
树的点分治
BZOJ2152
聪聪可可 点分治
此题明显可以点分治解决,对每层分治块递归子块,求出块内有多少距离%3=0,1,2的节点,与之前其他块的信息归并,即ans+=f[0]*g[0]+f[1]*g[2]+f[2]*g[1],再把g加到f上面去即可注意点分治求重心一定注意不要打错字母(打混x,y之类的)注意此题题意诡异,点对要*2+n(单点也算,反过来算两次)分母是n*n而不是n*(n-1)/2#include #include usin
liuguangzhe1999
·
2016-04-13 23:00
点分治
BZOJ1468 Tree 点分治入门练习题
点分治见
BZOJ2152
此题只是同时需要把点到根的距离存到数组里,可以用sort排序然后再统计(arr数组排序后只要arr[l]+arr[r]小于k,则arr[l]与arr中下标[l+1,r]任意一个的和都满足要求
R_e_V_e_R_s_E
·
2016-02-19 20:00
BZOJ2152
聪聪可可 点分治入门
点分治基本思路:①对每个点,计算经过它的满足题目要求的链的条数,所有点的答案加起来刚好不重不漏地统计了整棵树中满足条件的点数②计算方法:先算出一颗树上经过了根(根找重心,树比较平衡)的满足条件的链的数量(可以分治),然后打上标记(每次递归下去时如果遇到标记就停止,相当于将树从这个位置断开分成了多棵子树,分别处理这些子树),减去仅在子树中(即没有过根)的满足条件的链(递归下去)本题目统计cnt[i]
R_e_V_e_R_s_E
·
2016-02-19 20:00
bzoj2152
聪聪可可
题目链接本人写的第一道点分治嘿嘿嘿点分治重要的就是要找重心和标记已计算过的点、减掉重复计算的部分1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 12#include 13#definerre(i,r,
HugeGun
·
2016-02-16 16:00
【
bzoj2152
】聪聪可可 点分治
Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上
LOI_DQS
·
2015-12-29 09:00
bzoj2152
(树分治)
2152:聪聪可可TimeLimit: 3Sec MemoryLimit: 259MBSubmit: 1284 Solved: 655[Submit][Status][Discuss]Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已
M_AXSSI
·
2015-12-22 20:00
【
bzoj2152
】聪聪可可 点分治
点分治求路径长度为3的倍数的链的条数,结果用分数表示。 这道题明显是树形dp简单,然而还是写了点分治(练习所用没办法啊)。AC代码如下:#include #include #include #defineN50005 usingnamespacestd; intn,m,tot,sum,rt,ans,t[3],fst[N],pnt[N],len[N],nxt[N],d[N],sz[N],f[
lych_cys
·
2015-11-28 11:00
DFS
点分治
BZOJ 2152 聪聪可可 (树上点分治)
题目地址:
BZOJ2152
找有多少对权值和为3的倍数的点。最简单的点分治。
u013013910
·
2015-06-29 23:00
编程
ACM
算法与数据结构
树上点分治
【
bzoj2152
】【聪聪可可】
2152:聪聪可可TimeLimit:3SecMemoryLimit:259MBSubmit:924Solved:487[Submit][Status][Discuss]Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智
FZHvampire
·
2015-06-21 14:00
【
BZOJ2152
】聪聪可可 树分治
广告:#include intmain() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44419775"); }题解:裸的处理树上路径的树分治。代码:#include #include #include #include #defineN20100 #defineVe[i].v #def
Vmurder
·
2015-03-18 19:00
树分治
BZOJ2152
聪聪可可
BZOJ2152
聪聪可可(点分治)
【题解】基础的点分治题还是分为路径是否经过root来讨论,计算点到根的距离时,一边计算,一边统计距离对3取模等于0,1,2的点的个数 注意:统计答案时(a,a)算1次,(a,b)算2次 【代码】#include #include intv[40005]={0},w[40005]={0},first[20005]={0},next[40005]={0}; intsize[20005]={0},max
cjk_cjk
·
2015-02-18 01:00
图论
bzoj
点分治
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他