当前位置: 首页 > 编程日记 > 正文

poj2472

最短路,bellman

ContractedBlock.gifExpandedBlockStart.gifView Code
#include <iostream>
#include
<cstdio>
#include
<cstdlib>
#include
<cstring>
#include
<cmath>
using namespace std;

#define inf 0x3f3f3f3f
#define maxn 100
#define maxm 10000
#define eps 10e-9

int n, m, pre[maxn], edge[maxm][2];
double d[maxm];
double dist[maxn];

int dblcmp(double a, double b)
{
if (abs(a - b) < eps)
return 0;
if (a + eps < b)
return -1;
return 1;
}

int relax(int u, int v, double c)
{
if (dblcmp(dist[v], dist[u] * c) < 0)
{
dist[v]
= dist[u] * c;
pre[v]
= u;
return 1;
}
return 0;
}

int bellman(int src)
{
int i, j;
for (i = 0; i < n; i++)
{
dist[i]
= 0;
pre[i]
= -1;
}
dist[src]
= 1;
bool flag;
for (i = 1; i < n; i++)
{
flag
= false;
for (j = 0; j < m * 2; ++j)
{
if (1 == relax(edge[j][0], edge[j][1], d[j]))
flag
= true;
}
if (!flag)
break;
}
for (j = 0; j < m; ++j)
{
if (1 == relax(edge[j][0], edge[j][1], d[j]))
return 0;
}
return 1;
}

void input()
{
scanf(
"%d", &m);
for (int i = 0; i < m; i++)
{
scanf(
"%d%d%lf", &edge[i * 2][0], &edge[i * 2][1], &d[i * 2]);
edge[i
* 2][1]--;
edge[i
* 2][0]--;
edge[i
* 2 + 1][0] = edge[i * 2][1];
edge[i
* 2 + 1][1] = edge[i * 2][0];
d[i
* 2 + 1] = d[i * 2];
d[i
* 2 + 1] /= 100;
d[i
* 2] /= 100;
}
}

int main()
{
//freopen("t.txt", "r", stdin);
while (scanf("%d", &n), n)
{
input();
bellman(
0);
printf(
"%.6f percent\n", dist[n - 1] * 100);
}
return 0;
}

相关文章:

.net core 2.0 部署到centos 7生产环境

.netcore的跨平台如此之火&#xff0c;忍不住想试试 在linux下部署 .net 程序。 借鉴此篇博文&#xff1a;将ASP.NET Core应用程序部署至生产环境中&#xff08;CentOS7&#xff09; 虽然是借鉴&#xff0c;但过程坎坷。对从未使用过linux的我难度可想而知&#xff0c;但万事有…

微软沈向洋:写给AI新潮流——人工智能创作的五点建议

2019年EmTech 数字大会 本周&#xff0c;我有幸在旧金山举行的EmTech数字大会上发言&#xff0c;为大家讲述了当今人工智能发展的现状&#xff0c;以及未来的发展方向。我想与大家分享的是&#xff0c;面对新一轮的人工智能创新大潮&#xff0c;人们最该思考的五件大事。 1)技…

【Linux】在VirtualBox-6.0中安装Manjaro18.0

1、参考博客&#xff1a; VMware虚拟机下Manjaro17.1.6安装详细教程 2、在VirtualBox-6.0中安装Manjaro18.0 1&#xff09;基本步骤和博客中安装17.1.6相同&#xff0c;下面只记录不同的。 * VirtualBox中没有Manjaro的选项&#xff0c;可以选择 ArchLinux&#xff1b; * 本…

netty里集成spring注入mysq连接池(一)

netty的性能非常高&#xff0c;能达到8000rps以上&#xff0c;见 各个web服务器的性能对比测试 1.准备好需要的jar包 spring.jar //spring包 netty-3.2.4.Final.jar // netty库 commons-dbcp.jar // dbcp数据库连接池 mysql-connector-java-5.1.6.jar // d…

图很难理解?看这篇图论基础与图存储结构就够了

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | 程序员吴师兄转载自五分钟学算法&#xff08;ID:CXYxiaowu&#xff09;1 前言打算先普及一下图的相关理论支持&#xff0c;本文不建议一口气阅读完毕&#xff0c;可以先浏览一遍&a…

【Linux】修改/etc/fstab时参数设错,导致启动异常,无法进入系统(已解决)

1、问题描述 在ubuntu14.04上设置自动挂载硬盘分区时&#xff0c;修改/etc/fstab时&#xff0c;将defaults错误写成default&#xff0c;导致启动异常&#xff0c;无法进入系统。 2、解决方法 1&#xff09;ubuntu启动时有两种模式&#xff1a;普通模式&#xff08;ubuntu&am…

gitlab安装

根据官方文档安装&#xff1a;https://www.gitlab.com.cn/installation/#centos-6 centos6&#xff1a; 1、没有安装lokkit&#xff0c;yum search lokkit后安装lokkit sudo yum install -y curl policycoreutils-python openssh-server cronie sudo lokkit -s http -s ssh2、安…

如何将Android带入互联网数字家庭? 第一篇转载

前言&#xff1a;很有幸通过ARM Group认识了 ARM的家庭软件架构师 --- 章立(Leon Zhang) &#xff08;他也是ARM战略软件联盟部门的一员. Leon 拥有多年产品开发和项目管理经验&#xff0c; 曾经参与了数字录像机、机顶盒、数字电视&#xff0c;网络电视以及智能电视&#xff0…

【linux】用过的shell命令

1、批量替换文件中的字符串 eg&#xff1a;将当前目录 . 下的old替换成new sed -i "s/new/old/g" grep old -rl .如果字符串中有‘/’等特殊字符需要反斜杠‘\’来转移 eg&#xff1a;将当前目录下的“old/old”&#xff0c;替换成“new/new” sed -i "s/new…

node简单实现excel文件下载

1.利用csv格式兼容实现 csv是一种利用,、\t、\n等分隔符存储的文本文件&#xff0c;excel可兼容打开&#xff0c;利用此原理&#xff0c;代码实现如下&#xff1a; app.use(route.get(/export, async ctx > {ctx.res.setHeader(Content-Type, application/vnd.ms-execl);ctx…

儿科医生的眼泪,全被数据看见了

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | AlfredWu来源 | Alfred数据室&#xff08;ID:Alfred_Lab&#xff09;《人间世》第二季第8集《儿科医生&#xff1a;坚守&#xff0c;还是逃离&#xff1f;》把儿科医生的辛苦与挣扎…

[毕业生的商业软件开发之路]C#类型样式

近期开始接触到在校学生、高校实习生和毕业生&#xff0c;在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯&#xff0c;人生来一个完美的转弯。 -----------------------…

特斯拉被曝储存大量未加密个人数据 | 极客头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑编译丨王哲来源丨猎云网&#xff08; ID&#xff1a;ilieyun&#xff09;编者按&#xff1a;特斯拉是否明确界定了数据安全的目标&#xff1f;它现有的规则又在保护哪些人&#xff1f;如果…

【Linux】neocomplcache disabled: “sudo vim“ is detected and $HOME is set to your user‘s home

1、问题描述 使用sudo vim时&#xff0c;弹出提示&#xff1a; neocomplcache disabled: "sudo vim" is detected and $HOME is set to your users home. You may want to use the sudo.vim plugin, the "-H" option with "sudo" or set alwa…

016 | 漫谈区块链共识机制

原创文章&#xff0c;转载请注明&#xff1a;转载自Keegan小钢 并标明原文链接&#xff1a;http://keeganlee.me/post/blockchain/20180425 微信订阅号&#xff1a;keeganlee_me 写于2018-04-25 专栏地址&#xff1a;xiaozhuanlan.com/fullstack 共识机制是区块链的一个核心特征…

临危不乱,.Net+IIS环境经常出现的问题及排障。

http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/02/2123991.html

零门槛!手把手教你打造AI应用

如你所见&#xff0c;聊天机器人已经逐渐渗透到生活的方方面面。它可以提供生活娱乐方面的服务&#xff0c;比如查询音乐、地图、天气&#xff0c;做心理测试&#xff0c;甚至 Google 的 Duplex 技术还能让你通过机器人进行订餐&#xff0c;当然还有很多能跟你谈天说地闲聊胡扯…

【Qt】启动QtCreator时报错:Cannot mix incompatible Qt library (version ) with this library (version...

1、问题描述 当启动QtCreator时报错(我的Qt版本是Qt5.6.3): Cannot mix incompatible Qt library (version 0x50603) with this library (version 0x50601) Aborted (core dumped)2、原因分析 原因是QtCreator使用的Qt库版本是5.6.1,而环境中配置的Qt库版本是5.6.3 1)Q…

利用IIS作为宿主 发布你的WCF Service(转)

http://blog.csdn.net/blacksource/article/details/3942130最近公司的一个需求&#xff0c;涉及到WCF开发。在网上找了些资料&#xff0c;大都是利用单独的应用程序、或者Windows服务作为WCF Service的host。其实WCF还提供一种方式&#xff0c;和以前的Remoting比较类似&#…

旷视提出AutoML新方法,在ImageNet取得新突破 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑来源 | 旷视研究院 近日&#xff0c;来自旷视研究院的郭梓超、张祥雨、穆皓远、孙剑等人发表一篇新论文“Single Path One-Shot Neural Architecture Search with Uniform Sampling”&a…

9.QT-标准对话框

Qt提供的可复用的标准对话框,全部继承自QDialog类,如下图所示: QMessageBox&#xff1a;信息对话框&#xff0c;用于显示信息、询问问题等&#xff1b;QFileDialog&#xff1a;文件对话框QColorDialog&#xff1a;颜色对话框QInputDialog&#xff1a;输入对话框(允许用户输入一…

【Python】解决print不能立即打印的问题

1、问题描述 在Python中使用print打印hello world时&#xff0c;终端不显示 def hello():print("hello world!")2、原因 因为标准输入输出stdin/stdout有缓冲区&#xff0c;所以使用print不能立即打印出来&#xff0c;作为刚接触Python的菜鸟&#xff0c;迷瞪了半…

windows mobile做一个摄象头预览程序

zdirectshow的原理大概大家都知道,基本就是用微软封装的接口来实现硬件无关性,但是最终调用的接口都要在驱动层有对应的实现: 为了更清楚地演示directshow的数据传输过程,我必须说明的这个程序的基本流程。我采用的是vs2005 windows mobile 6。0 professional 仿真模拟器&…

初学者的机器学习入门实战教程!

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | Adrian Rosebrock译者 | kbsc13&#xff0c;京东算法工程师&#xff0c;研究领域计算机视觉来源 | 机器学习与计算机视觉&#xff08;ID&#xff1a;AI_Developer&#xff09;这是…

【Qt】调用Python函数:无参数、单个参数、多个参数、数组参数

一、链接配置 如果缺少头文件需要安装python3-dev: sudo apt-get install python3-dev链接libpython3.4库,添加头文件路径,以Qt为例: INCLUDEPATH += /usr/include/python3.4 LIBS += -L /usr/lib/python3.4/config-3.4m-x86_64-linux-gnu -lpython3.4二、头文件 因为p…

分布式系统的问题

本文内容翻译自《Designing Data-Intensive Applications》一书的第8章。 近几章主要介绍系统如何处理错误。例如&#xff0c;我们讨论了副本故障转移&#xff0c;复制滞后和事务的并发控制。当我们理解实际系统中可能出现的各种边界情况时&#xff0c;我们就能更好地处理它们。…

php-cgi占用cpu资源过高的解决方法

转的网上的&#xff0c;不过对PHP-CGI菜鸟的人&#xff0c;还是有点帮助的。 1. 一些php的扩展与php版本兼容存在问题&#xff0c;实践证明 eAccelerater与某些php版本兼容存在问题&#xff0c;具体表现时启动php-cgi进程后&#xff0c;运行10多分钟&#xff0c;奇慢无比&#…

请收下这份NLP热门词汇解读

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑本文转载自微软研究院AI头条&#xff08;ID:MSRAsia&#xff09;编者按&#xff1a;在过去的一段时间&#xff0c;自然语言处理领域取得了许多重要的进展&#xff0c;Transformer、BERT、…

【Ubuntu】dpkg: 处理软件包 XXXX (--configure)时出错解决方法

1、使用apt-get --purge remove删除安装包时报错 dpkg: 处理软件包 python-gflags (–configure)时出错&#xff1a; 子进程 已安装 post-installation 脚本 返回了错误号 1 正在设置 python-sklearn (0.14.1-2) … Traceback (most recent call last): File “/usr/bin/pycom…

c#devexpress GridContorl添加进度条

demo 的实现图 下边是步骤和代码 1定义 时钟事件,定时的增加进度条的增量. 2: 添加进度条 3;定义字段属性 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; …