zoukankan      html  css  js  c++  java
  • 洛谷P2384 最短路(dijkstra解法)

    题目背景

    狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗?

    他会给你100000000000000000000000000000000000%10金币w

    题目描述

    给定n个点的带权有向图,求从1到n的路径中边权之积最小的简单路径。

    输入输出格式

    输入格式:

    第一行读入两个整数n,m,表示共n个点m条边。 接下来m行,每行三个正整数x,y,z,表示点x到点y有一条边权为z的边。

    输出格式:

    输出仅包括一行,记为所求路径的边权之积,由于答案可能很大,因此狗哥仁慈地让你输出它模9987的余数即可。

    废话当然是一个数了w

    //谢fyszzhouzj指正w

    对于20%的数据,n<=10。

    对于100%的数据,n<=1000,m<=1000000。边权不超过10000。

    输入输出样例

    输入样例#1: 
    3 3
    1 2 3 
    2 3 3 
    1 3 10
    输出样例#1: 
    9

    Dijkstra算法思想: 先找到原点,距离为0,枚举与原点相邻的所有点,更新其答案,并找出距原点最近的一个点,假设以这个点为原点,并枚举于其相邻的所有点,更新答案,再找出距它最近的一个点,重复上述步骤,直到整个图都被确定为最佳答案
    为止。
     
    
    

     AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int ff=0x3f3f3f;
     4 int n,m,g[5006][5006],a,b,c; 
     5 bool vis[1005];
     6 int dist[1005];
     7 void dij(int s){
     8     memset(vis,false,sizeof(vis));//初始时所有点都没有确定最短路 
     9     memset(dist,0x3f,sizeof(dist));//答案初始为无限大 
    10     dist[s]=0;//原点最短路为0 
    11     for(int i=0;i<n;i++){
    12         int hh,mind=ff;
    13         for(int j=1;j<=n;++j){
    14             if(!vis[j]&&dist[j]<mind){//找出于当前点相邻的距当前点最近的点 
    15                 mind=dist[j];
    16                 hh=j;
    17             }
    18         }
    19         vis[hh]=1;
    20         for(int j=1;j<=n;++j){
    21             dist[j]=min(dist[j],dist[hh]+g[hh][j]);//如果一个点a到原点距离加点a到当前点的距离小于当前点到原点距离,那么就更新 
    22         }
    23     }
    24 }
    25 int main()
    26 {
    27      memset(g,0x3f,sizeof(g));  //初始化图,是每个点到原点最短路都为无限大 
    28     cin>>n>>m;
    29     for(int i=0;i<m;i++){//建图 
    30         cin>>a>>b>>c;
    31         g[a][b]=c;
    32     }
    33     dij(1);
    34     cout<<dist[n]%9987;
    35 return 0;
    36 }


     



  • 相关阅读:
    js 数组的length(javascript教程四)
    js利用数组length属性清空和截短数组
    mysql一对多关联查询的时候筛选条件
    PHP错误处理及异常处理笔记
    Javascript获取URL地址变量参数值的方法
    php 提示Warning: mysql_fetch_array() expects
    Centos中安装PHP的PDO MySQL扩展的教程
    ASP.NET缓存 Cache之数据缓存
    Spring.Net框架一:Spring.Net简介
    T4模板
  • 原文地址:https://www.cnblogs.com/lipeiyi520/p/10340361.html
Copyright © 2011-2022 走看看