博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图论基础
阅读量:5167 次
发布时间:2019-06-13

本文共 1906 字,大约阅读时间需要 6 分钟。

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\) 的最短路。

\(n\le 300,m\le 100000\)

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

5 Codeforces 274D

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

拓扑排序完事。

6 Codechef CLIQUED

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

新建一个节点 \(U\) ,对于每个特殊点 \(v\) ,连有向边 \(<v,U,0>\)\(<U,v,特殊点间的道路长度>\)

然后正常跑最短路。

7 poj 1275

先二分雇佣总人数。

\(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](i\le 8)\)
\(s[i+16]-s[i]≥a[i]-雇佣总人数(i>8)\)

8 poj 3159

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

差分约束。

\(a_j-a_i\le 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。\((k\le 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上跑一遍统计。

最后膜的时候用龟速乘。

转载于:https://www.cnblogs.com/BlogOfchc1234567890/p/10416682.html

你可能感兴趣的文章
Python acos() 函数
查看>>
top coder password题解
查看>>
Myeclipse 安装所有插件
查看>>
4-1
查看>>
POJ - 2796 Feel Good 单调递增栈+前缀和
查看>>
redis面试题
查看>>
三、activiti designer 的安装
查看>>
Python自省
查看>>
How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
查看>>
【算法】求二叉树各路径结点之和并找出最大值的路径
查看>>
c 字符串 函数
查看>>
12.5 站立会议
查看>>
SQLServer数据库的一些全局变量
查看>>
Centos-本机网络连接、运行端口和路由表等信息-netstat
查看>>
胡适阅读
查看>>
Java中日期的转化
查看>>
小程序弱网环境卡顿怎么办?一招迅速提升小程序运行速度
查看>>
管线【十八】
查看>>
重温设计模式 - 建造者模式
查看>>
Android开发 LevelListDrawable详解
查看>>