洛谷 P2299 Mzc和体委的争夺战

题目背景

mzc与djn第四弹。

题目描述

mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道)。但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁。

mzc很生气,决定与其决斗,但cat的体力确实有些不稳定,所以他需要你来帮他计算一下最短需要的时间。

输入输出格式

输入格式:

第一行有两个数n,m.n表示有n个停留站,m表示共有m条路。

之后m行,每行三个数a_i \; b_i \; c_iai​bi​ci​ ,表示第a_iai​ 个停留站到第b_ibi​ 个停留站需要c_ici​ 的时间。(无向)

输出格式:

一行,输出1到n最短时间。

输入输出样例

输入样例#1: 复制

5 8
1 2 3
2 3 4
3 4 5
4 5 6
1 3 4
2 4 7
2 5 8
1 5 100
输出样例#1: 复制

11

说明

n \leq 2500\;m \leq 2*10^5n≤2500m≤2∗105

由于mzc大大十分着急,所以他只能等待1s。

思路:单源最短路(我一般用SPFA)        难度:普及/提高-

#include<algorithm>
#include<cstdio>
#include<queue>
#define MAXN 0x7fffffff
#define M 200005
using namespace std;
queue<int> q;
int n, m, k;
int tot;
int dis[M], vis[M];
int to[M*], net[M*], head[M*], cap[M*]; //无向图,开两倍 void add(int u, int v, int w) { //数组储存邻接链表
to[++tot] = v; net[tot] = head[u]; head[u] = tot; cap[tot] = w;
to[++tot] = u; net[tot] = head[v]; head[v] = tot; cap[tot] = w;
} void spfa(int x) { //SPFA函数
for(int i = ; i <= n; i++) vis[i] = , dis[i] = MAXN; //初始化
vis[x] = ; dis[x] = ; q.push(x);
while(!q.empty()) {
int y = q.front();
q.pop(); vis[y] = ;
for(int i = head[y]; i; i = net[i]) {
int t = to[i];
if(dis[t] > dis[y]+cap[i]) {
dis[t] = dis[y]+cap[i];
if(!vis[t]) vis[t] = , q.push(t);
}
}
}
} int main() {
scanf("%d%d", &n, &m);
for(int i = ; i <= m; i++) {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
add(a, b, c);
}
spfa();
printf("%d", dis[n]);
return ;
}

洛谷 P2299 Mzc和体委的争夺战的更多相关文章

  1. 洛谷——P2299 Mzc和体委的争夺战

    P2299 Mzc和体委的争夺战 题目背景 mzc与djn第四弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来 ...

  2. 洛谷P2299 Mzc和体委的争夺战 题解

    题目 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁. mzc很生气,决定与其决斗,但cat的体 ...

  3. 洛谷 2299 Mzc和体委的争夺战

    题目背景 mzc与djn第四弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁. mzc很生气 ...

  4. 【luogu P2299 Mzc和体委的争夺战】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2299#sub 裸的迪杰斯特拉(我是在考试前复习一下板子) #include<iostream> ...

  5. $P2299 Mzc和体委的争夺战$

    \(problem\) #ifdef Dubug #endif #include <bits/stdc++.h> using namespace std; typedef long lon ...

  6. 洛谷——P2126 Mzc家中的男家丁

    P2126 Mzc家中的男家丁 题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道 ...

  7. 洛谷 P2126 Mzc家中的男家丁

    题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了).现在知道mzc与男家丁们互 ...

  8. 洛谷——P2298 Mzc和男家丁的游戏

    P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...

  9. 洛谷 P2298 Mzc和男家丁的游戏

    P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...

随机推荐

  1. python多线程理解

    在发送网络请求的过程中,单个请求的速度总是有着很大的限制,而任务往往需要以更快的速度去执行,这时多线程就是一个很好地选择.python已经给我们封装好了多线程库thread和threading. th ...

  2. XML解析——SAX解析以及更方便的解析工具(JDOM、DOM4J)

    XML主要用于数据交换,HTML则用于显示. 相对于DOM的树形解析,SAX采用的是顺序解析,这种解析方法可以快速地读取XML数据的方式. SAX主要事件: No. 方法 类型 描述 1 public ...

  3. C++ 不输入回车就不结束输入的实现方法

    方法一 char mystr[128]; mystr[0] = '\0'; char c = getchar(); int i=0; while(c!='\n') { mystr[i] = c; c ...

  4. iOS项目开发实战——学会使用TableView列表控件(二)

    要在iOS开发中使用TableView列表控件,不仅能够直接使用TableViewController作为整个主界面,并且还能够使用TableView控件来实现.使用TableView能够进行很多其它 ...

  5. SQL Server字符串分割函数

  6. POJ 3038 贪心(multiset)

    题意: 思路: 1. 贪心 我们考虑肯定是走最近的最合适 想象自己是一个黑一日游的司机: 1.如果有乘客要上车,那么就让他上,收钱! 2.如果超载了,把距目的地最远的几个乘客踢下去,退钱. 3.行驶到 ...

  7. Spring--之旅

    spring的地位 如图可以看出,sping纵跨整个项目架构,它是一个容器框架.下面使用一个简单的项目来认识spring. 快速入门 step 1.新建一个普通Java工程,spring只是一种容器, ...

  8. less---查看文件

  9. python try except 捕捉错误得到错误的时候的值

    try: dict_reason = self.get(name,id_number,mobile,card_number,**kwargs) except RetryError as e: # 获取 ...

  10. HDU 2191 悼念512汶川大地震

    悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...