传送门

  算法训练 最短路  
时间限制:1.0s   内存限制:256.0MB
   
锦囊1
 
锦囊2
 
锦囊3
 
问题描述

给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。

输入格式

第一行两个整数n, m。

接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。

输出格式
共n-1行,第i行表示1号点到i+1号点的最短路。
样例输入
3 3 1 2 -1 2 3 -1 3 1 2
样例输出
-1 -2
数据规模与约定

对于10%的数据,n = 2,m = 2。

对于30%的数据,n <= 5,m <= 10。

对于100%的数据,1 <= n <= 20000,1 <= m <= 200000,-10000 <= l <= 10000,保证从任意顶点都能到达其他所有顶点。

题解:

由于有环,有负权,故用bellman-ford

由于数据有点大,故用队列进行优化

506328 609738062@qq.com 最短路 04-07 17:24 1.055KB C++ 正确 100 171ms 4.003MB 评测详情
 #include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector> using namespace std; const int N = ;
const int inf = 0x3f3f3f3f; typedef struct
{
int to;
int dis;
}PP; int n,m;
vector<PP> bian[N];
int v[N];
int vis[N]; void bellman()
{
queue<int> que;
int te,nt;
que.push();
vis[]=;
int i;
int dis;
while(que.size()>=)
{
te=que.front();
que.pop();
for(i=;i<bian[te].size();i++){
nt=bian[te][i].to;
dis=bian[te][i].dis;
if(v[nt]>v[te]+dis){
v[nt]=v[te]+dis;
if(vis[nt]==){
vis[nt]=;
que.push(nt);
}
}
}
vis[te]=;
}
} int main()
{
int i,j;
int uu,vv,l;
PP te;
//freopen("data.in","r",stdin);
//while(scanf("%d%d",&n,&m)!=EOF)
scanf("%d%d",&n,&m);
{
memset(vis,,sizeof(vis));
fill(v,v+n+,inf);
v[]=;
for(i=;i<=n;i++){
bian[i].clear();
//printf(" i=%d v=%d\n",i,v[i]);
}
for(i=;i<=m;i++){
scanf("%d%d%d",&uu,&vv,&l);
te.to=vv;te.dis=l;
bian[uu].push_back(te);
}
bellman();
for(i=;i<=n;i++){
printf("%d\n",v[i]);
}
}
return ;
}

最新文章

  1. iOS 学习 - 3.仿qq列表
  2. Sql server 备份还原后出现&ldquo;受限制用户&rdquo;问题
  3. Invalid byte 3 of 3-byte UTF-8 sequence
  4. Linux下查看文件属性
  5. 分享我的PL/SQL的优化设置,为开发全面提速
  6. PHP再学习1——cURL表单提交、HTTP请求和响应分析
  7. [Cycle.js] Customizing effects from the main function
  8. poj 1961 Period(KMP训练指南例题)
  9. C/S通信模型和相关技术要点
  10. 动态生成Zip
  11. Swift得知——使用和分类功能(四)
  12. Django之路:QuerySet API,后台和表单
  13. iOS 之 调试、解决BUG
  14. 大数据(1):基于sogou.500w.utf8数据的MapReduce程序设计
  15. python接口自动化-post请求4
  16. Echarts 柱状图配置详解
  17. 05 详解C# 迭代器
  18. JavaScript是如何工作的:与WebAssembly比较及其使用场景
  19. Acceleration for ML 论文导读
  20. a标签和p标签不能设置margin

热门文章

  1. 洛谷P2763 试题库问题(最大流)
  2. mac下fiddler安装配置启动及iphone配置连接
  3. win驱动安装记录
  4. Struts2控制文件的上传与下载
  5. mysql 增删查改
  6. liunx 修改IP地址
  7. gprc-java与golang分别实现服务端,客户端,跨语言通信(二.golang实现)
  8. 在Foxmail邮件客户端登录263企业邮箱
  9. 使用Auto Layout中的VFL(Visual format language)——代码实现自动布局
  10. 彻底卸载WIN10 OneDrive