2018.09.15 vijos1053Easy sssp(最短路)

传送门
貌似可以最短路时同时判定负环啊。
但我不想这样做。
于是写了一个dfs版的判环,bfs版的求最短路。
代码:

#include<iostream>
#include<cctype>
#include<cstdio>
#include<cstring>
#include<queue>
#define N 1005
#define M 1000005
#define inf 0x3f3f3f3f
using namespace std;
inline int read(){int ans=0,w=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();return ans*w;
}
int n,m,first[N],cnt=0,d[N];
bool in[N];
struct edge{int v,next,w;}e[M<<1];
inline void add(int u,int v,int w){e[++cnt].v=v,e[cnt].w=w,e[cnt].next=first[u],first[u]=cnt;}
inline bool spfa(int p){in[p]=true;for(int i=first[p];i;i=e[i].next){int v=e[i].v;if(d[v]>d[p]+e[i].w){d[v]=d[p]+e[i].w;if(in[v]||spfa(v))return in[p]=false,true;}}return in[p]=false;
}
inline bool check(){for(int i=1;i<=n;++i)if(spfa(i))return true;return false;
}
inline void Spfa(int s){queue<int>q;for(int i=1;i<=n;++i)d[i]=inf,in[i]=false;q.push(s),d[s]=0,in[s]=true;while(!q.empty()){int x=q.front();q.pop();in[x]=false;for(int i=first[x];i;i=e[i].next){int v=e[i].v;if(d[v]>d[x]+e[i].w){d[v]=d[x]+e[i].w;if(!in[v])in[v]=true,q.push(v);}}}
}
int main(){int s;n=read(),m=read(),s=read();for(int i=1;i<=m;++i){int u=read(),v=read(),w=read();add(u,v,w);}if(check()){printf("-1");return 0;}Spfa(s);for(int i=1;i<=n;++i){if(d[i]==inf)puts("NoPath");else printf("%d\n",d[i]);}return 0;
}

转载于:https://www.cnblogs.com/ldxcaicai/p/9738266.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机学院创新实验室,ACM创新实验室概况

计算机与信息技术学院ACM创新实验室创建于2013年经9月&#xff0c;在学院领导的大力支持下&#xff0c;由兰义华、马晓普两位博士发起组建&#xff0c;经过近年来的发展&#xff0c;在全体队员和教练的共同努力下&#xff0c;实验室形成了较完善的管理制度和较成熟的运行模式&a…

python之pop

python中pop()函数的用法 pop() 函数用于移除列表中的一个元素&#xff08;默认最后一个元素&#xff09;&#xff0c;并且返回该元素的值。 语法&#xff1a;list.pop(objlist[-1]) //默认为 index-1&#xff0c;删除最后一个列表值。 obj – 可选参数&#xff0c;要移除列表元…

函数的有界性

要证明f(x)在X上有界&#xff0c;必须找到一个M>0&#xff0c;使任意x属于X都有 |f(x)|<M&#xff1b;要证明f(x)在X上无界&#xff0c;只需要找到一个数列{xn}存在于X,使f(xn) n趋于∞&#xff0c;f(xn)趋于∞ 外界函数有界&#xff0c;复合函数必有界转载于:https://ww…

康宁玻璃ct值计算公式_【钦州】CT室铅板生产厂家

【钦州】CT室铅板生产厂家石膏板等做复合层&#xff0c;整个工程下来人工费&#xff0c;造价费贵多了。而硫酸钡粉工艺造价费也走高&#xff1f;原因在于&#xff0c;它工艺本身就要考虑墙壁表面平整与否&#xff0c;干燥速度&#xff0c;气候&#xff0c;温度等诸多因素&#…

职业中专计算机基础试讲课,职业中专计算机基础教育分析

职业中专计算机基础教育分析摘要&#xff1a;职业教育是指培养面向具体的职业岗位(岗位群)所需职业能力人才的专业基础教育。而在职业教育中除了开设各专业所需的专业课程外&#xff0c;还要开设一些基础教育来充实学生的能力&#xff0c;为其就业打下坚实的基础。计算机基础教…

实例41:python

#模仿静态变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- def varfunc(): var 0 print (‘var %d’ % var) var 1 if name ‘main’: for i in range(3): varfunc() 类的属性 作为类的一个属性吧 class Static: StaticVar 5 def varfunc(self): self.StaticVar…

mysqlnavicat数据库备份与恢复_Navicat如何还原MySQL数据库

Navicat作为高级数据库管理工具&#xff0c;它有着备份和还原的功能&#xff0c;可以用来备份导入的数据库或者是还原备份的数据库。前面教程给大家介绍了Navicat备份数据库的方法&#xff0c;那么如果要还原数据库&#xff0c;该如何操作呢&#xff1f;下面就一起来学习Navica…

1080i减少带宽

全高清&#xff08;Full HD&#xff09;物理分辨率达到1920*1080&#xff0c;包括1080I和1080P。以日本数字电视标准为例&#xff0c;按照显示格式的不同&#xff0c;共分为以下5种规格&#xff1a;  D1为480i格式&#xff0c;和NTSC模拟电视清晰度相同&#xff0c;525条垂直…

实例42:python

#题目&#xff1a;学习使用auto定义变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- num 2 def autofunc(): num 1 print (‘internal block num %d’% num) num 1 for i in range(3): print (‘The num %d’ % num) num 1 autofunc()

福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...

《计算机应用基础》2018年秋学期在线作业(一)共题&#xff0c;总分&#xff1a;100分 时间&#xff1a;30分0秒 答题中分一、单选题共20题&#xff0c;100分15分在Windows中&#xff0c;“写字板”和“记事本”所编辑的文档( )A均可通过剪切、复制和粘贴与其他Windows应用程序交…

实例43:python

#模仿静态变量(static)另一案例。 #!/usr/bin/python -- coding: UTF-8 -- class Num: nNum 1 def inc(self): self.nNum 1 print (‘nNum %d’ % self.nNum) if name ‘main’: nNum 2 inst Num() for i in range(3): nNum 1 print (‘The num %d’ % nNum) inst.i…

python画建筑分析图_教你用GH绘制酷炫的流线分析图

重要声明&#xff1a;这篇教程纯粹为绘图方法的介绍&#xff0c;其中的“人流数据”为YY而来的伪数据&#xff0c;没有真实性及可参考性&#xff0c;不可以作为科研方法&#xff01;请相关课题的研究者使用合理的、正确的、实际的方法采集并分析数据&#xff0c;以免出现数据造…

mac使用Shell(终端)SSH连接远程服务器

前提&#xff1a;要有你需要连接的服务器的ip&#xff0c;端口号&#xff0c;服务器上的账户和密码1、首先打开终端&#xff0c;然后输入sudo su - 回车进入根目录2、然后输入&#xff1a;ssh -p 端口号 服务器用户名ip &#xff08;例如ssh -p 22 userkunyu119.29.37.63&#…

手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...

核心提示&#xff1a;手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机上模拟钢琴app是一款…

实例44:python

#两个 3 行 3 列的矩阵&#xff0c;实现其对应位置的数据相加&#xff0c;并返回一个新矩阵&#xff1a; #X [[12,7,3], [4 ,5,6], [7 ,8,9]] #Y [[5,8,1], [6,7,3], [4,5,9]] #!/usr/bin/python -- coding: UTF-8 -- x [[12,7,3], [4,5,6], [7,8,9]] y [[5,8,1]…

r 语言roc_R语言画ROC曲线总结

原文链接&#xff1a;http://tecdat.cn/?p10963​tecdat.cn在本文中&#xff0c;我描述了如何在CRAN中搜索用于绘制ROC曲线的包&#xff0c;并重点介绍了六个有用的包。尽管我从一些我想谈论的软件包开始就有了一些想法&#xff0c;例如ROCR和pROC(我在过去发现它们很有用)&am…

SQLServer之创建非聚集索引

开始之前 典型实现 可以通过下列方法实现非聚集索引&#xff1a; UNIQUE 约束 在创建 UNIQUE 约束时&#xff0c;默认情况下将创建唯一非聚集索引&#xff0c;以便强制 UNIQUE 约束。 如果不存在该表的聚集索引&#xff0c;则可以指定唯一聚集索引。 有关详细信息&#xff0c;请…

outlook2013邮箱找不到服务器,outlook发邮件总提示找不到

2004-11-09无法连接到服务器。 帐户: pop3.sina.com.cn, 服务器: pop3.sina.com.cn, 协议: POP3, 端口: 110, 安全(SSL): 否, 套接字错误: 10060, 错误号: 0x800CCC0E0x800CCC0E 联机到服务器失败&#xff0c;无法与主机建立联机。等一段时间再试。或者用ping 等网络命令测试一…

实例45:python

#累计求和 #!/usr/bin/python -- coding: UTF-8 -- tmp 0 for i in range(1,101): tmp i print (‘The sum is %d’ % tmp)

linux验证cuda安装成功_Linux环境CUDA 4.0入门:验证安装

【IT168 技术】通过之前的文章&#xff0c;笔者介绍了如何在Linux环境下安装CUDA 4.0。因为Linux系统版本众多&#xff0c;因此即使按照相关步骤进行操作&#xff0c;也可能会出现问题。如何验证安装正确与否是本文将要讲解的内容。验证安装是否正确在进行下面的步骤之前&#…