• 图论基础


    2 hdu 4109

    求关键路径(最长路)。

    1. 用最短路算法,把<改成>
    2. 拓扑排序

    3 zoj 1508

    有若干个区间 ([a_i,b_i]) ,现在请找到一个整数集合 (Z) ,使得 (|Z∩[a_i,b_i]|=c_i)
    差分约束。

    差分约束建边:
    (x_1+c≥x_2) ,则连边 (<x_1,x_2>) ,边权为 (c) 。为什么?因为最短路算法中,如果有 (dis[u]+w[i]<dis[v]) ,就要更新 (dis[v]) ,力求让 (dis[v]≥dis[u]+w[i])
    然后,设 (s[i]) 表示 (1-i) 中有多少个数这道题的不等式:
    (s[i-1]+1≥s[i])
    (s[i]+0≥s[i-1])
    (s[n]+0≥s[i])
    (s[b[i]]+(-c[i])≥s[a[i]-1])

    然后spfa跑一遍最短路。

    4 hdu 3631

    有若干次操作:

    • 标记点 (u)
    • 询问 (u)(v) 的最短路。

    (nle 300,mle 100000)

    每次标记了一个点,就用floyd去 (n^2) 更新。

    5 Codeforces 274D

    一个 (n*m) 的矩阵,要求每一行的数字都是非递减的,可以交换某些列达到这一要求。输出交换后的序列顺序。

    拓扑排序完事。

    6 Codechef CLIQUED

    一个无向图, (k) 个特殊点,两两有一条长度确定的道路连接(不在输入中给出),问点 (S) 到所有点的最短路。

    新建一个节点 (U) ,对于每个特殊点 (v) ,连有向边 (<v,U,0>)(<U,v,特殊点间的道路长度>)
    然后正常跑最短路。

    7 poj 1275

    题意210 题意115

    先二分雇佣总人数。
    (s[i]) 为时刻 (0-i) 来工作过的总人数。
    (s[i]-s[i-1]≥a[i])
    (s[i]-s[i-1]le t[i])
    (s[i]-s[i-1]≥0)
    (s[i]-s[i-8]≥a[i](ile 8))
    (s[i+16]-s[i]≥a[i]-雇佣总人数(i>8))

    8 poj 3159

    (n) 个小孩要分糖果,有 (m) 个要求,每个要求形如第 (i) 个小孩要求第 (j) 个小孩的糖果数不能超过他的糖果数 (+c) 。问所有人糖果数的最大值 (-) 最小值。

    差分约束。
    (a_j-a_ile c)

    9 hdu 4635

    给你一张简单有向图,问最多加几条边,使得图还是简单的且不强连通。如果图一开始就强连通,输出 (-1)

    枚举每一个强连通分量,一种方案是把这个强连通分量两两节点连上边,其他所有强连通分量缩成一个点,两两节点连上边,这样这张图就只有两个强连通分量了,然后在这两个强连通分量中连很多条单向边。

    10 poj 2240

    给出 (n) 种货币互相的汇率,问能否通过兑换货币来赚钱。

    初始化每个节点的点权为1.0,然后if(dis[u]*w[i]<dis[v])dis[v]=dis[u]*w[i];
    最后查找有无 (>1) 的环

    11 bzoj 2750

    问一张图中有多少条最短路经过某条边。

    先跑 (n) 边dijkstra预处理出所有点对间的最短路,然后在形成的最短路径DAG上跑一遍统计。

    12 bzoj 2763

    一张无向图,询问(1)(n) 的最短路。可以把最多 (k) 条边的边权改为0。((kle 10))

    (dis[i][j])(1)(i) 的最短路,使用了 (j) 次把边权更改为0。

    13 poj 3463

    (s)(t) 的最短路和次短路有多少条。次短路长度必须等于最短路长度+1。

    (dis[i][0/1])(s)(i) 的最/次短路长度, (cnt[i][0/1])(s)(i) 的最/次短路数量。
    dijkstra时转移。

    14 zoj 3408

    问有多少条以1为起点的最短路经过某条边。膜 (10^{10})

    dijkstra预处理最短路,然后在形成的最短路径DAG上跑一遍统计。
    最后膜的时候用龟速乘。

  • 相关阅读:
    利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?
    [Go] 函数/方法 的 变参
    PHP 如何显示大数字,防止显示为 科学计数法 形式
    PHP协程 详解
    [Go] 路径、目录名、包名、文件名
    [Go] 复合类型(数组、切片、字典、结构体)变量的 初始化 及 注意事项
    Firefox 及其 插件“个性化设置”备份
    Go
    [Go] template 常用方法详解 及 注意事项
    Go
  • 原文地址:https://www.cnblogs.com/BlogOfchc1234567890/p/10416682.html
Copyright © 2020-2023  润新知