zoukankan      html  css  js  c++  java
  • 最短路模板(SPFA POJ2387)

    #include <set>
    #include <map>
    #include <queue>
    #include <stack>
    #include <math.h>
    #include <bitset>
    #include <vector>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #define MAXN 1010100
    #define LL long long
    #define fi first
    #define se second
    #define mp make_pair
    #define pb push_back
    #define ll __int64
    #define INF 0x7fffffff
    #define cs(s) freopen(s,"r",stdin)
    #define mem(x) memset(x,0,sizeof(x))
    #define PI acos(-1)
    #define eps 1e-10
    using namespace std;
    int gcd(int a,int b){return b?gcd(b,a%b):a;}
    int lcm(int a,int b){return a/gcd(a,b)*b;}
    LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
    //head
    const int maxn=2021;
    int n,m,inq[maxn],dis[maxn];
    vector<pair<int,int> >v[maxn];
    int main(){
    	// freopen("in.txt","r",stdin);
    	// freopen("out.txt","w",stdout);
    	ios::sync_with_stdio(false);
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		int a,b,w;
    		cin>>a>>b>>w;
    		v[a].pb(mp(b,w));
    		v[b].pb(mp(a,w));
    	}
    	queue<int>p;
    	p.push(1);
    	inq[1]=1;
    	for(int i=1;i<=max(n,m);i++)dis[i]=INF;
    	dis[1]=0;
    	while(!p.empty()){
    		int now=p.front();
    		p.pop();
    		inq[now]=0;
    		for(int i=0;i<v[now].size();i++){
    			int ne=v[now][i].fi;
    			if(dis[now]+v[now][i].se<dis[ne]){
    				dis[ne]=dis[now]+v[now][i].se;
    				if(!inq[ne]){
    					inq[ne]=1;
    					p.push(ne);
    				}
    			}
    		}
    	}
    	cout<<dis[m];
    	return 0;
    }
    
    
  • 相关阅读:
    访问修饰符、封装、继承
    面向对象与类
    内置对象
    三级联动 控件及JS简单使用
    asp。net简单的登录(不完整)
    asp。net:html的表单元素:
    ASP.Net简介及IIS服务器及Repeater
    用户控件
    登陆,激活,权限
    timer控件,简单通讯
  • 原文地址:https://www.cnblogs.com/pubgoso/p/10759734.html
Copyright © 2011-2022 走看看