您当前的位置: 首页 > 

*DDL_GzmBlog

暂无认证

  • 1浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[luogu] Heat Wave G vector跑最短路裸题

*DDL_GzmBlog 发布时间:2021-10-25 15:38:17 ,浏览量:1

前言

题目很水 就是跑一遍 最短路

传送门 :

思路

使用vector存边 然后开始跑

CODE
#include 
#include 
#include 
#include 
#define x first
#define y second
using namespace std;
typedef pair pii;
int n,m,s,t;
const int N = 3000,M = 6500;
int dist[N];
int st[N];
struct edge{
    int to,val;
};

vector g[N];

int dij()
{
    memset(dist,0x3f,sizeof dist);
    dist[s] = 0;

    priority_queue heap;
    heap.push({0,s});

    while(heap.size())
    {
        pii  k =  heap.top();
        heap.pop();

        int ver = k.y ,distance = k.x;

        if(st[ver]) continue;
        st[ver] = true;

        for(auto x : g[ver])
        {
            int j = x.to;
            if(dist[j] > distance  + x.val)
            {
                dist[j] = distance + x.val;
                heap.push({dist[j],j});
            }
        }
    }

    return dist[t];


}
void solve()
{
   cin>>n>>m>>s>>t;
   while(m -- )
   {
        int a,b,c;
        cin>>a>>b>>c;
        g[a].push_back({b,c});
        g[b].push_back({a,c});
   }

   int ans  = dij();
   cout            
关注
打赏
1657615554
查看更多评论
0.0574s