[luoguP2325] [SCOI2005]王室联邦(树分块乱搞)


传送门

想了半小时,没什么思路。。

看了题解,是个叫做树分块的奇奇怪怪的操作。。

题解

树分块的研究

#include <cstdio>#include <cstring>#define N 2001int n, b, size, cnt, tot;int head[N], to[N], nex[N], belong[N], s[N], root[N];bool vis[N];inline void add(int x, int y)inline void dfs(int u)}}s[++size] = u;}int main()dfs(1);while(size) belong[s[size]] = tot;printf("%d\n", tot);for(i = 1; i <= n; i++) printf("%d ", belong[i]);puts("");for(i = 1; i <= tot; i++) printf("%d ", root[i]);return 0;}

  



上一篇:[luoguP2221] [HAOI2012]高速公路(线段树)

下一篇:[luoguP2569] [SCOI2010]股票交易(DP + 单调队列)


分块
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图