题意:求树上第k大联通块 n,k<=1e5
考虑转化为k短路的形式。
也就是要建出一张图是的这条图上每一条S到T的路径都能代表一个联通块。
点分治建图
递归下去,假定每个子树的所有联通块中都可以被表示为一条s'--->t'的路径。
合并的时候新建关于当前分治重心的S点和T点。
S->s1->t1->s2->t2-s3->t3->T。
其中S->s1边权为wx,ti->si+1的边权为0,再连一条S->T边权为0代表这个点不选的方案即可。
这样一波神仙操作后S->T就可以代表一条选择了这个点(这里选择的意思是最终联通块包含这个点)的一个联通块。
最后再建立S和T,S向所有源点连边,T向所有汇点连边即可(边权为0)。
这样S到T的一条路径即可代表一个树上的联通块。
然后再这个图上跑k短路即可。
复杂度显然取决于点数,而这个点数又显然与点分治复杂度同阶----O(nlogn)。
代码?我也不会写啊qwq

树上第k大联通块的更多相关文章

  1. 【HDOJ5713】K个联通块(状压DP,计数)

    题意:有一张无重边的无向图, 求有多少个边集,使得删掉边集里的边后,图里恰好有K个连通块. 1≤T≤201≤K≤N≤140≤M≤N∗(N+1)/21≤a,b≤N 思路:From http://blog ...

  2. HDU 4729 An Easy Problem for Elfness (主席树,树上第K大)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意:给出一个带边权的图.对于每一个询问(S , ...

  3. [HDU5713]K个联通块

    [HDU5713]K个联通块 题目大意: 有一张\(n(n\le14)\)个点,\(m\)条边无重边的无向图,求有多少个边集,使得删掉边集里的边后,图里恰好有\(k\)个连通块. 思路: 一个显然的动 ...

  4. 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)

    Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...

  5. Count on a tree(SPOJ COT + 树上第k大 + 主席树 + LCA)

    题目链接:https://www.spoj.com/problems/COT/en/ 题目: 题意: 给你一棵有n个节点的树,求节点u到节点v这条链上的第k大. 思路: 我们首先用dfs进行建题目给的 ...

  6. K个联通块

    题意: 有一张无重边的无向图, 求有多少个边集,使得删掉边集里的边后,图里恰好有K个联通块. 解法: 考虑dp,$h(i,S)$表示有$i$个联通块,点集为$S$的图的个数,$g(S)$表示点集为S的 ...

  7. SPOJ 10628. Count on a tree (树上第k大,LCA+主席树)

    10628. Count on a tree Problem code: COT You are given a tree with N nodes.The tree nodes are number ...

  8. hdu5713 K个联通块[2016百度之星复赛B题]

    dp 代码 #include<cstdio> ; ; int n,m,k,cnt[N]; ]; ][],i,j,l,a,b; int check(int x,int y) { int i; ...

  9. 【模板/经典题型】树上第k大

    直接对树dfs一发,对每个节点建出主席树. 查询的时候主席树上二分,四个参数x+y-lca(x,y)-fa[lca(x,y)]. 如果要求支持动态加边的话,只需要一个启发式合并即可,每次暴力重构主席树 ...

随机推荐

  1. windows下如何安装vundle?

    参考: http://blog.csdn.net/zhuxiaoyang2000/article/details/8636472 vundle是gmarik 受 ruby的 bunler的启发开发的. ...

  2. 【做题】apc001_f-XOR Tree——巧妙转化及dp

    对树上的路径进行操作是十分难处理的事情.一开始的思路主要针对于\(a_i<=15\)这一特殊性质上.于是考虑了\(a_i<=1\)的情况,然而除了糊出一个适用范围极小的结论外,并没有什么用 ...

  3. 【做题】atc_cf17-final_E - Combination Lock——巧妙转化及图论

    题意:给出一个由26个小写字母组成的字符串,可以任意地进行若干个操作,每次操作是让指定区间内的字母变为下一个字母(z变成a).问是否存在方案使得这个字符串变为回文串. 一开始的想法是构造len/2条模 ...

  4. Joint Detection and Identification Feature Learning for Person Search

    Joint Detection and Identification Feature Learning for Person Search 2018-06-02 本文的贡献主要体现在: 提出一种联合的 ...

  5. (zhuan) Using convolutional neural nets to detect facial keypoints tutorial

    Using convolutional neural nets to detect facial keypoints tutorial   this blog from: http://danieln ...

  6. 使用Python制作第一个爬虫程序

    用到的开发环境 IDE:pycharm python  version :2.7 掌握的知识:  Pycharm  还能更改Python的版本 代码如下:(重点就是   正则表达式的学习) # !/u ...

  7. Kylin介绍2

    原理 官网 doc cube介绍 安装 案例 企业级特性 Apache Kylin 1.5的新功能和架构改变 Java  API 通过java代码对kylin进行cube build kylin从入门 ...

  8. Qt打包

    先在Qt Creator里release一遍,打开Qt下载时自带的像命令控制台一样的东西,比如我在创建项目时选用的是MinGw编译器, 然后在文件管理器里找到release生成的exe,cd进exe所 ...

  9. python写web服务器

    #coding = utf-8 from http.server import BaseHTTPRequestHandler, HTTPServer class RequestHandler(Base ...

  10. 51nod 1378 夹克老爷的愤怒(树型dp+贪心)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1378 题意: 思路:要想放得少,尽量放在叶子节点处,叶子节点处点比较多. ...