博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3386 Usaco Til the Cows come home
阅读量:5155 次
发布时间:2019-06-13

本文共 1691 字,大约阅读时间需要 5 分钟。

最短路水题,没啥好解释的。。

#include 
#include
#include
#include
using namespace std;  const int maxv=2333;const int INF=0x3f3f3f3f; int n,m; struct edge{    int from, to, cost;    edge() {}    edge(int _from, int _to, int _cost) {        from = _from;        to = _to;        cost = _cost;    }}; vector
G[maxv];vector
edges;int rank[maxv], dis[maxv];bool inque[maxv]; void add(int u, int v, int w) {    edges.push_back(edge(u, v, w));    int m = edges.size();    G[u].push_back(m-1);} int spfa(int s, int n) {    for (int i = 0; i <= n; i++) {        dis[i] = INF;        rank[i] = 0;        inque[i] = false;    }    dis[s] = 0;    rank[s] = 1;    inque[s] = true;    queue
que;    que.push(s);    while (!que.empty()) {        int u = que.front();        inque[u] = false;        que.pop();        for (int i = 0; i < (int)G[u].size(); i++) {            edge e = edges[G[u][i]];            if (dis[e.to] > dis[u] + e.cost) {                dis[e.to] = dis[u] + e.cost;                if (!inque[e.to]) {                    que.push(e.to);                    inque[e.to] = true;                    rank[e.to]++;                    if (rank[e.to] >= n) return false;                }            }        }    }    return true;} int main(){    memset(dis,0x3f3f3f3f,sizeof(dis));    scanf("%d%d",&n,&m);    for(int i=1;i<=n;i++){        int x,y,z;        scanf("%d%d%d",&x,&y,&z);        add(x,y,z);        add(y,x,z);    }    if(spfa(1,m)) printf("%d\n",dis[m]);    return 0;}

 

转载于:https://www.cnblogs.com/OIerLYF/p/7496108.html

你可能感兴趣的文章
求出斐波那契数组
查看>>
Vue.js 基础学习之组件通信
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
每天一个Linux命令 - 【chkconfig】
查看>>
△UVA10106 - Product(大数乘法)
查看>>
golang (7) 文件操作
查看>>
关于 Object.defineProperty()
查看>>
[转] Maven 从命令行获取项目的版本号
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
(VC/MFC)多线程(Multi-Threading) -1. 基本概念.
查看>>
快数据时代下,Moka携手DataPipeline提升招聘效能
查看>>
day1 用户登陆三次机会
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
LeetCode Ones and Zeroes
查看>>