图论
抄OI-Wiki的
基础概念:
图的存储
struct edge
{
int v;
int next;
int val;
}e[MAX];
int head[MAX] ,eid;
void addedge(int x ,int y)
{
++eid;
e[eid].to = y;
e[eid].next = head[x];
head[x] = eid;
}
for(int i = head[u]; i;i = e[i].next)//遍历从一个点u出发的所有边
{
int v = e[i].to;
*&^%&*&^^&&%%&*;
}
最短路
floyd
Dijkstra:
SPFA它死了
差分约束
x_1 - x_0 <= 2
x_2 - x_0 <= 7
x_3 - x_0 <= 8 → 图的类型
x_2 - x_1 <= 3
x_3 - x_2 <= 2
例题:小K的农场
例题:新年好
例题:泽泽射门
例题:Car 的旅行路线
例题:[最短路条数]
例题:狡猾的商人
思路:
例题:飞行路线
思路:
if d[v][i]>=d[u][i]+w d[v][i]=d[u][i]+w
if d[v][i]>=d[u][i-1] d[v][i]=d[u][i-1]
例题:重要的城市
思路
if f[i][j]==f[i][k]+f[k][j] p[i][j]=0;
例题:Geodetic集合
思路
if f[u][k]+f[k][v]==f[u][v] 则k在l(u,v)内
优化
例题:Piggy Back S
思路
例题:雷雨
思路
例题:限制边数的最短路
思路
d[i][j][T] 从i到j经过T条边的最短路
d[i][j][T]=min(d[i][j][T],d[i][k][T-x]+d[k][j][x]
小组成员:邵品渊,邵品砚,蒋佳成,顾天泽,马天翔,陈继禹