洛谷P2299Mzc和体委的争夺战
来源:互联网 发布:网络投票工具 编辑:程序博客网 时间:2024/05/22 00:12
题目背景
mzc与djn第四弹。
题目描述
mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道)。但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁。
mzc很生气,决定与其决斗,但cat的体力确实有些不稳定,所以他需要你来帮他计算一下最短需要的时间。
输入输出格式
输入格式:第一行有两个数n,m,n表示有n个停留站,m表示共有m条路。
之后m行,每行三个数a[i],b[i],c[i],表示第a[i]个停留站到第b[i]个停留站需要c[i]的时间。(无向)
输出格式:一行,输出1到m最短时间。
输入输出样例
输入样例#1:
5 81 2 32 3 43 4 54 5 61 3 42 4 72 5 81 5 100
输出样例#1:
11
说明
n<=2500
m < = 40000000
由于mzc大大十分着急,所以他只能等待1S。
话说我已经很久没有做过最短路问题了。。。
一发弱弱的 spfa 。。。
#include<cstdio>#include<queue>#include<cstring>#include<iostream>#include<algorithm>#define MAX 9999999#define MAXN 20010using namespace std;int n,m,s,t,c=1;int path[MAXN],head[MAXN];bool vis[MAXN];struct node{ int next,to,w;}a[MAXN*200];inline int read(){ int date=0,w=1;char c=0; while(c!='-'&&(c<'0'||c>'9'))c=getchar(); if(c=='-'){w=-1;c=getchar();} while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();} return date*w;}inline int relax(int u,int v,int w){ if(path[v]>path[u]+w){ path[v]=path[u]+w; return 1; } return 0;}void add(int u,int v,int w){ a[c].to=v;a[c].w=w; a[c].next=head[u]; head[u]=c++; a[c].to=u;a[c].w=w; a[c].next=head[v]; head[v]=c++;}void spfa(){ int u,v; queue<int> q; path[s]=0; vis[s]=true; q.push(s); while(!q.empty()){ u=q.front(); vis[u]=false; q.pop(); for(int i=head[u];i;i=a[i].next){ v=a[i].to; if(relax(u,v,a[i].w)&&!vis[v]){ vis[v]=true; q.push(v); } } } printf("%d\n",path[t]==MAX?-1:path[t]);}int main(){ int u,v,w; memset(vis,false,sizeof(vis)); memset(path,MAX,sizeof(path)); n=read();m=read(); for(int i=1;i<=m;i++){ u=read();v=read();w=read(); add(u,v,w); } s=1; t=n; spfa(); return 0;}
阅读全文
1 0
- 洛谷P2299Mzc和体委的争夺战
- Mzc和体委的争夺战(Dijkstra算法的思考与尝试以及与SPFA算法的对比)
- 大佬们的IT外包争夺战
- 百度、阿里巴巴的互联网争夺战何时休
- Facebook与Google的互联网霸主争夺战
- 一场没有硝烟的战争---端口争夺战
- 一场没有硝烟的战争---端口争夺战
- 一场没有硝烟的战争---端口争夺战
- 主流Java报表软件之王者争夺战:功能大PK系列之图例的边框样式和颜色
- Araleii & Bill的冠名权争夺战 (简单的博弈)
- 资源分配争夺战--某案例的个人见解
- 评:全民猎头 IT业的人才争夺战
- BNUOJ 44580 Araleii & Bill的冠名权争夺战 again
- Araleii & Bill的冠名权争夺战【找规律】
- CPU发展路上的争夺战 AMD与Intel兄弟俩
- 移动APP领域的新战场—用户争夺战
- 即时通讯争夺战
- 手机争夺战
- Ubuntu 14.04 安装GSL库
- ActiveMQ与Spring整合
- 使div标签中的内容浮动在最上层
- 209. Minimum Size Subarray Sum
- 百度文库爬虫之ppt爬虫
- 洛谷P2299Mzc和体委的争夺战
- 驾驶证、行驶证、身份证识别技术
- OpenCV3.3.0 + CLion + CMake 配置(Mac巨细无敌版)
- OpenCV2编程手册笔记之 6.2使用低通滤波器
- 数据结构顺序链表
- neural networks and deep learning 学习笔记
- 【unity学习笔记】unity3d- 使用对象池高效管理内存
- 欢迎大学新生关注实无穷小微积分!
- 【待复习】PAT甲级1042. Shuffling Machine (20)