博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-3268 Silver Cow Party
阅读量:4123 次
发布时间:2019-05-25

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

#include 
#include
#include
#include
#include
using namespace std;const int maxn = 1005;const int INF = 1e8;int sign[maxn];int connect[maxn];int dis[maxn];struct node{ int from; int to; int len;} edge[maxn * maxn];int n, m, x, pos, max_time;void add_edge(int op, int ed, int len){ edge[pos].from = connect[op]; connect[op] = pos; edge[pos].to = ed; edge[pos].len = len; pos ++;}int SPFA(int op, int ed){ queue
process; memset(sign, 0, sizeof(sign)); fill(dis, dis + maxn, INF); dis[op] = 0; process.push(op); sign[op] = 1; while(!process.empty()) { int this_op = process.front(); process.pop(); sign[this_op] = 0; for(int i = connect[this_op]; i != -1; i = edge[i].from) { int this_ed = edge[i].to; int this_len = edge[i].len; if(dis[this_op] + this_len < dis[this_ed]) { dis[this_ed] = dis[this_op] + this_len; if(!sign[this_ed]) { process.push(this_ed); sign[this_ed] = 1; } } } } return dis[ed];}int main(){ while(~scanf("%d %d %d", & n, & m, & x)) { pos = 0; memset(connect, -1, sizeof(connect)); while(m --) { int a, b, t; scanf("%d %d %d", & a, & b, & t); add_edge(a, b, t); } max_time = 0; for(int i = 1; i <= n; i ++) max_time = max(max_time, SPFA(i, x) + SPFA(x, i)); printf("%d\n", max_time); } return 0;}

题意:

一群牛要聚会。标号1—n,他们要从自己的标号出发,前往指定的x牛的标号位置。要求每条牛来回挑的都是最短路。问其中的牛最大来回总时间是多少。

题解:

这道题是有向最短路,去x的路和回x的路可能不同。所以调用两次SPFA分别求去的最短路和回来的最短路,并相加。

转载地址:http://tctpi.baihongyu.com/

你可能感兴趣的文章
java 利用java运行时的方法得到当前屏幕截图的方法
查看>>
java 获取控制台的输入的两个方法
查看>>
java实现电脑远程控制完整源代码
查看>>
软件行业心得,软件工程师工作总结
查看>>
java 开发银行支付、对账时证书相关的操作总结
查看>>
Linux下WebLogic10.3的安装与配置
查看>>
hmtl 网页缓存的几个方法总结
查看>>
linux 系统下控制台重启服务器、重启weblogic的命令
查看>>
最近发现了个页面生成二维码的js工具
查看>>
Git开发时多分支防止多次提交版本线,使用cherry-pick、合并commit实现多次修改关联iusses
查看>>
Git提交过程中修改某次错误提交,或是修改bug的方法
查看>>
[jQuery]使用jQuery.Validate进行客户端验证(高级篇-下)——不使用微软验证控件的理由
查看>>
MySQL日期时间函数大全
查看>>
Java编程中“为了性能”需做的26件事
查看>>
浅谈android中的目录结构
查看>>
突发灵感,看到某网站的搞笑图片挺多,做了一个小java,扫描抠了一些
查看>>
android开发环境安装(MyEclipse8.6+JDK+ADT16)
查看>>
Android 服务器推送技术
查看>>
androidpn 作为Android推送方案存在的问题
查看>>
oracl 数据库中查询当前时间前几天的数据
查看>>