zoukankan      html  css  js  c++  java
  • 图论

    T1

    题目大意:给定一个n个点m条边的有向图,对于每条边求其翻转后是否SCC个数发生变化(n<=1000,m<=200000)

    假设现在考虑一条边(u,v),设去掉这条边后u->v,v->u的状态分别为L,R

    1>L=1,R=1 u,v一定在同一个SCC里一定不变

    2>L=0,R=0 一定不在也不变

    3>L=0,R=1 SCC-1,这种情况直接对于每个点dfs一遍即可

    4>L=1,R=0 考虑所有u的出边那么L=1说明前缀和后缀的边至少有一个可以到达v的路径,直接dfs即可

    T2

    题目大意:给定一个n个点m条边的有向图,边权都为1,求出每条边(u,v)被删掉后u到v的最短路(n<=1000,m<=100000)

    首先枚举根S之后bfs求出最短路树

    假如删去(S,T)

    那么在树上T的子树的最短路才会受到影响

    这些点的最短路都可以由外界点更新出一个初始值

    之后内部更新直接跑DJ/SPFA多个log不是很能过

    因为权值只有1,所以最短路的距离不超过n

    考虑维护n个队列,每个队列i存储dis=i的所有点

    模拟DJ的过程便可以去掉log

    T3

    小凸和小方是好朋友,小方给了小凸一个 n×m(n≤m)的矩阵 A,并且要求小凸从矩阵中选出 n 个数,其中任意两个数都不能在同一行或者同一列。
    现在小凸想知道,选出的 n 个数中第 k 大的数的最小值是多少。

    把选(i,j)转化为i->n+j连一条边

    那么问题转化为匹配问题

    二分答案后跑最大流即可

    T4

    首先有个神仙建图:

    对于每张牌,反面颜色->正面

    那么一个方案合法则意味着每个点的入度小于等于1

    对于每个联通块分别考虑,设某个联通块点数为V,边数为E

    1>V<E 显然一定有一个点入度大于1

    2>V=E-1树形dp一下得出每个点为根的最小翻转数

    3>V=E是个基环树,环上两种方向考虑一下,外向树上都是确定的

  • 相关阅读:
    模型驱动自动化测试框架
    TestPartner脚本错误处理的例子
    学习《Selenium 1.0 Testing Tools》
    自动化测试视频【持续更新】
    《软件测试基本功》系列教程
    自动化测试的误解与自动化测试的好处
    广州自动化测试实战训练系列课中的《QTP工具应用实战》课程PPT
    零基础QTP自动化测试训练
    Selenium结合FESTSwing测试Applet
    TestPartner自动化测试培训大纲
  • 原文地址:https://www.cnblogs.com/AthosD/p/12388283.html
Copyright © 2011-2022 走看看