首页 > 其他分享 >8095: 小L的假期旅行 dijkstra

8095: 小L的假期旅行 dijkstra

时间:2023-04-29 09:11:06浏览次数:37  
标签:8095 假期 城市 路径 pos int dijkstra 2005

描述

 

在即将到来的五一假期,小L向爸爸妈妈申请了T元的经费,开始计划起了自己五一的假期旅行。小L家在1号城市,尽管假期并不算长,小L还是希望在T元经费内选择去其他城市旅行。算上小L自己所在的1号城市,小L列举了N个城市,而这N个城市里有一些城市之间有双向连通的路径,并且每条路径也有对应的费用(两个城市之间的路径可能不止一条)。现在给你共N个城市和M条路径和路径对应的费用,以及经费T,请你帮小L计算他有多少个城市可供选择

 

 

输入

 

第一行为3个整数N,M,T,代表N个城市,M条路径,T元经费(1<=N<=1000,0<=M<=min(n*(n-1),2000),1<=T<=10000)

接下来为M行,每行三个整数a,b,c,表示城市a和城市b之间有一条路径连通,费用为c元

(1<=a,b<=N,1<=c<=10000)

 

 

输出

 

一个整数,即小L的T元最多能到达的城市个数

 

 

样例输入

 

样例输出

 

提示

小L的10元经费最多可以到达2,5,6这3个城市

#include<bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
int g[2005][2005],vis[2005],dis[2005];
int n,m,t;
void dij(int s)
{
    for(int i=1;i<=n;i++)dis[i] = g[s][i];
    dis[s] = 0;vis[s] = 1;
    int minn,pos;
    for(int i=1;i<=n;i++)
    {
        minn = inf;
        for(int j=1;j<=n;j++)
        {
            if(vis[j]==0&&dis[j]<minn)
            {
                minn = dis[j];pos = j;
            }
        }
        if(minn==inf)break;
        vis[pos] = 1;
        for(int j=1;j<=n;j++)
        {
            if(dis[j]>dis[pos]+g[pos][j])
                dis[j] = dis[pos]+g[pos][j];
        }
    }
}
int main()
{
    freopen("travel.in","r",stdin);
    freopen("travel.out","w",stdout);
    cin>>n>>m>>t;
    memset(g,inf,sizeof(g));
    for(int i=1;i<=n;i++)g[i][i] = 0;
    for(int i=1;i<=m;i++)
    {
        int x,y,z; cin>>x>>y>>z;
        if(z<g[x][y])g[x][y] = g[y][x] = z;
    }
    dij(1);
    int sum = 0;
    for(int i=2;i<=n;i++)
        if(dis[i]<=t)sum++;
    cout<<sum;
     return 0;
}

 

标签:8095,假期,城市,路径,pos,int,dijkstra,2005
From: https://www.cnblogs.com/jyssh/p/17363565.html

相关文章

  • 图的最短路问题(综合详解!!!看这一篇就够了)(spfa-Dijkstra-floyd-模板代码c-)
    文章目录图论:三种最短路及模板模板SPFA算法Floyd算法Dijkstra算法例题与应用反向建边最短路计数1488.最短距离3305.作物杂交4074.铁路与公路图论:三种最短路及模板注意:在这三种算法中我均使用的链式前向星存图,具体方式请看我这篇博客:链式前向星存图详解模板SPFA算法spfa是优化......
  • Dijkstra的算法
    Dijkstra算法是一种单源最短路径算法,用于在带有非负权重的图中,找到一个源节点到所有其他节点的最短路径。该算法的基本思想是通过贪心的方式逐步扩展当前已知的最短路径集合,直到找到源节点到所有其他节点的最短路径。Dijkstra算法的具体步骤如下:初始化:设置源节点到自己的距离......
  • LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,欢迎来到小彭的LeetCode周赛解题报告。昨晚是LeetCode双周赛第102场,你参加了吗?这场比赛比较简单,拼的是板子手速,继上周掉大分后算是回了一口血......
  • Dijkstra算法求最短路
    一、Dijkstra 只适用于单源最短路中所有边权都是正数的情况二、存储方式1、稠密图用邻接矩阵2、稀疏图用邻接表三、算法实现用一个dist数组保存源点到其余各个节点的距离,dist[i]表示源点到节点i的距离。将dist数组赋值为正无穷,dist[1]=0用......
  • 假期怕剧荒?五一假期追剧人正确打开方式!
    马上就是五一假期了趁着假期必须狠狠刷剧才是我们追剧人正确的打开方式!追剧人,追剧魂追剧人就是快乐多!俗话说,吃饭不能没有饭碗,那咱们追剧也不能没有好用的追剧平台啊!之前因为要一次性追好几部剧,每部剧都归属于不同的平台,把这几个平台都下载了这也太浪费我的内存了。于是乎我想到找到......
  • 五一假期将近,给景区视频监控方案提几点建议
    一、行业背景随着旅游业的不断发展,旅游安全问题越来越受到重视。尤其是五一假期将近,为确保游客在景区内的人身安全和财产安全,景区必须采用高效、可靠的安防视频监控系统,并进行科学规划和设计,从而实现及时发现安全事故和降低安全隐患。二、经验与建议作为垂直深耕音视频技术及视频监......
  • 改进蚁群算法 Dijkstra算法 遗传算法 人工势场法实现二维 三维空间路径规划
    【蚁群算法】改进蚁群算法Dijkstra算法遗传算法人工势场法实现二维三维空间路径规划本程序为蚁群算法+Dijkstra算法+MAKLINK图理论实现的二维空间路径规划算法实现:1)基于MAKLINK图理论生成地图,并对可行点进行划分;2)用Dijkstra算法实现次优路径的寻找;3)在Dijkstra算法的基......
  • 蚁群算法 Dijkstra算法 遗传算法 人工势场法实现二维 三维空间路径规划
    【改进蚁群算法】蚁群算法Dijkstra算法遗传算法人工势场法实现二维三维空间路径规划本程序为改进蚁群算法+Dijkstra算法+MAKLINK图理论实现的二维空间路径规划算法实现:1)基于MAKLINK图理论生成地图,并对可行点进行划分;2)用Dijkstra算法实现次优路径的寻找;3)在Dijkstra算法......
  • 迪杰斯特拉算法(Dijkstra算法)
    洛谷P1821[USACO07FEB]CowPartyShttps://www.luogu.com.cn/problem/P1821一、递归/*B1631[Usaco2007Feb]CowParty====关键词================================......
  • L2-001-紧急救援*C++(使用Dijkstra算法附带全详细注释)
     L2-001紧急救援分数 25 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每......