链式前向星存图

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1000000 + 5;
int n,m,be,en;
int to[maxn];
int cost[maxn];
int head[maxn];
int nex[maxn];
int cnt;

void add(int x,int y,int z)
{
    cnt++;
    nex[cnt]=head[x];   //先把指针指向上次的位置
    head[x]=cnt;        //然后把头指向自己
    to[cnt]=y;
    cost[cnt]=z;
}

//for(int i=head[u];i!=-1;i=nex[i])

int main()
{
    scanf("%d%d%d%d",&n,&m,&be,&en);
    memset(head,-1,sizeof(head));
    int x,y,z;
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&x,&y,&z);
        add(x,y,z); add(y,x,0);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/chilkings/p/12044293.html

时间: 2024-11-07 00:32:45

链式前向星存图的相关文章

最短路 spfa 算法 &amp;&amp; 链式前向星存图

推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/details/54379641 spfa  自行百度 说的很详细 spfa 有很多实现的方法  dfs  队列  栈  都可以 时间复杂度也不稳定 不过一般情况下要比bellman快得多 #include <stdio.h> #include <math.h> #include <st

UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的T-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据. 每组数据第一行是两个整数NN ,MM (N≤100N≤100 ,M≤10000M≤1000

NYOJ 20 吝啬的国度 【BFS+链式前向星建图,Vector建图】

吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路). 输入 第一行输入一个整数M表示测试数据共有M(1<=M<=5)组 每组测试数据的第一行输入一个正整数N(1<=N<=100000)和一个正整数S(1<=S<=100000

链式前向星建图

1 /* 2 //链式前向星维护的是一个边集数组 3 const int N = 1e6+5;//边的数目 4 int head[N];//某个点相邻的第一条边的编号 5 int cnt;//边的数目 6 struct Edge{ 7 int to;//这条边到达的终点 8 int dis;//这条边的权值 9 int next;//这条边指向的下一条边的编号(可以自己想想,并不是上一条,采用的是类似于前插法) 10 }edge[N]; 11 void addEdge(int u,int v,i

链式前向星DFS

采用链式前向星存图的DFS: #include <iostream> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <queue> using namespace std; typedef long long LL; const int maxN = 100 + 3

关于MOD&amp;链式前向星-2015年9月25日

好久没写了,其实一直也在做,但是没心情写总结文章,所以还是以后做一点就写一点吧. 最近状态很差很差,打水题都过不了,我也是醉了. 重做了去年的两道noip题,D1T2和D2T3,里面包括了MOD运算. MOD运算基本满足四则运算,所以很多表达式在模p意义下都是等价的,但除法除外. 但是还要注意,需要在非负情况下进行计算,当出现减法时,一定要加到正值再做. 另外注意溢出的问题,及时取模也是很重要的. noip2014D1T2可以用链式前向星存图. 大概就是这样: struct Edge{ int

HDU1035 Robot Motion【链式前向星】

Robot Motion Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7039    Accepted Submission(s): 3244 Problem Description A robot has been programmed to follow the instructions in its path. Instruc

HDU3342 Legal or Not【拓扑排序】【链式前向星】

Legal or Not Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4633    Accepted Submission(s): 2115 Problem Description ACM-DIY is a large QQ group where many excellent acmers get together. It is

hdu2647 逆拓扑,链式前向星。

原文地址 题目分析 题意 老板发工资,但是要保证发的工资数满足每个人的期望,比如A期望工资大于B,只需比B多1元钱即可.老板发的最低工资为888元.输出老板最少发的工资总数,若是无法满足大家的期望,则输出-1. 分析 很明显这是一个拓扑问题,若存在环则无法满足大家的期望.若按常理,A>B,则可能会建立A指向B的有向边.此题不然,因为我们只知道最少的钱数是888,所以从小到大进行拓扑排序更为恰当.所以是建立B指向A的有向边.此之为逆拓扑排序.因为这样处理后排序的结果与原先拓扑排序的顺序相反. 以图