[luoguP3302] [SDOI2013]森林(主席树 + 启发式合并 + lca)


传送门

显然树上第k大直接主席树

如果连边的话,我们重构小的那一棵,连到另一棵上。

说起来简单,调了我一晚上。

总的来说3个错误:

1.离散化写错位置写到了后面

2."="写成了"=="

3.加双向边时加成了单向边

3个错误3个小时。。。

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 80011#define M 10000000using namespace std;int n, m, T, cnt, tot, test, last;int head[N], to[N << 2], nex[N << 2], val[N], ntr[N], deep[N], f[N][21], root[N], sum[M], ls[M], rs[M], fa[N], size[N];bool vis[N];inline int read()inline void add(int x, int y)inline int find(int x)inline void Union(int x, int y)inline int query(int a, int b, int c, int d, int l, int r, int x)inline void insert(int &now, int last, int l, int r, int x)inline void dfs(int u)}vis[u] = 0;}inline int lca(int x, int y)int main()for(i = 1; i <= m; i++)sort(ntr + 1, ntr + n + 1);m = unique(ntr + 1, ntr + n + 1)  ntr  1;for(i = 1; i <= n; i++) val[i] = lower_bound(ntr + 1, ntr + m + 1, val[i])  ntr;for(i = 1; i <= n; i++)if(!deep[i]) dfs(i);while(T)else}return 0;}

  



上一篇:织梦/dedecms采集怎么去除a标签

下一篇:Vue.js前端MVVM框架实战篇


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