zoukankan      html  css  js  c++  java
  • 集训Day9

    又是不想学化学但元气满满的一天呢qwq

    今天又有新的故事发生那就是!

    bzoj2150

    最小流

    每个点拆成$a_x$和$a_y$

    $S$->$a_x$容量为1

    $a_y$->$T$容量为1

    $a_x$->$a_y$容量上下界都是1

    若点$a$能到达点$b$则$a_y$->$b_x$容量为1

    这个图跑最小流就可以了,另外,S到T的最小流就是T到S的最大流

    bzoj2238

    给出一个N个点M条边的无向带权图,以及Q个询问,每次询问在图中删掉一条边后图的最小生成树。(各询问间独立,每次询问不对之后的询问产生影响,即被删掉的边在下一条询问中依然存在)

    首先考虑,不在最小生成树上的边,去掉后都可以选择最小生成树。

    然后如果删掉在最小生成树上的边,那么去掉后,原有的树边一定不变,新添加的一定是能够构成一棵树的非树边。

    于是先求出最小生成树,然后看每条非树边能够使多少条树边删去后连通。显然是树链上的边。

    所以可以使用树链剖分+线段树的方法实现:使一条链上所有边权值对某值取min、查询某条边的权值。此时需要把边权放到深度更大的那个端点的点权

    bzoj1093

    一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:对于u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。若G'=(V',E')满足V'是V的自己,E'是E中所有跟V'有关的边,则称G'是G的一个导出子图。若G'是G的导出子图,且G'半连通,则称G'为G的半连通子图。若G'是G所有半连通子图中包含节点数最多的,则称G'是G的最大半连通子图。给定一个有向图G,请求出G的最大半连通子图拥有的节点数K,以及不同的最大半连通子图的数目C。由于C可能比较大,仅要求输出C对X的余数。

    如果原图是DAG则找最长链,不是DAG就Tarjan变成DAG找最长链

  • 相关阅读:
    SecureCRT上传文件到服务器 CentOS举例
    MongoDB关于replSet的配置概述(一主二从)
    MongoDB的安装与卸载与再安装……
    zip在python中的使用方法
    try,raise等的python的使用方法介绍
    【转】jQuery给动态添加的元素绑定事件的方法
    sublime的纵向操作(列操作)原来这么用
    Python 利用*args和**kwargs解决函数遇到不确定数量参数问题
    Python 函数式编程介绍
    Python list可以做什么
  • 原文地址:https://www.cnblogs.com/Kong-Ruo/p/9210795.html
Copyright © 2011-2022 走看看