右侧是1。维护的同时保持最短路p值至少,我有直接存款(1-p)。该概率不满足,为了使这个值极大。

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#define inf 0x3f3f3f3f
#define eps 1e-6
#define ll long long
const int maxn=100010;
const int maxm=100010;
using namespace std; struct node
{
int v,w,next;
double p;
}e[maxm<<1];
int vis[maxn],h,head[maxn],n,m,d[maxn],pre[maxn];
double p[maxn]; void addedge(int a,int b,double c)
{
e[h].v=b;
e[h].w=1;
e[h].p=c;
e[h].next=head[a];
head[a]=h++;
} void spfa(int s)
{
int x,v,i;
for(i=0;i<=n;i++)
p[i]=0,d[i]=inf;
memset(vis,0,sizeof vis);
memset(pre,-1,sizeof pre);
p[s]=1,vis[s]=1,d[s]=0;
queue<int> q;
q.push(s);
while(!q.empty())
{
x=q.front();
q.pop();
vis[x]=0;
for(i=head[x];i!=-1;i=e[i].next)
{
v=e[i].v;
if(d[v]>d[x]+1)
{
d[v]=d[x]+1;
p[v]=p[x]*e[i].p;
pre[v]=x;
if(!vis[v])
{
vis[v]=1;
q.push(v);
}
}
else if(d[v]==d[x]+1)
{
if(p[v]<p[x]*e[i].p)
{
p[v]=p[x]*e[i].p;
pre[v]=x;
if(!vis[v])
{
vis[v]=1;
q.push(v);
}
}
}
}
}
return ;
}
int flag;
void output(int x)
{
if(pre[x]!=-1)
output(pre[x]);
if(flag) flag=0;
else putchar(' ');
printf("%d",x);
} int main()
{
int a,b,s,t;
double c;
while(~scanf("%d%d",&n,&m))
{
h=0;
memset(head,-1,sizeof head);
scanf("%d%d",&s,&t);
while(m--)
{
scanf("%d%d%lf",&a,&b,&c);
addedge(a,b,1-c/100);
addedge(b,a,1-c/100);
}
spfa(s);
printf("%d %.8lf\n",d[t]+1,1-p[t]);
flag=1;
output(t);
puts("");
}
return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

URAL 1934 Black Spot --- 最短的简单修改的更多相关文章

  1. URAL 1934 Black Spot(最短路)

    Black Spot Time limit: 1.0 secondMemory limit: 64 MB Bootstrap: Jones's terrible leviathan will find ...

  2. URAL 1934 spfa算法

    D - Black Spot Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  3. 简单修改hosts文件加快打开网页速度

    这个电脑小技巧的帖子菲菲博客分享如何通过简单一招利用修改系统的hosts文件来实现有效加快浏览器打开网页的速度.尤其是网络繁忙时DNS服务器负担加重的时候效果特别明显,有兴趣就和菲菲一起来学习一下吧, ...

  4. 简单修改 MySQL 的 root 账号密码

    首先这是一篇非常非常初级的教程. 平时为了方便,经常是直接在网上下载 PHP + MySQL 的集成环境,但有一些 MySQL 的 root 账号是没有密码的(例如大名鼎鼎的 XAMPP 就是这样), ...

  5. UIAlertController 简单修改title以及按钮的字体颜色

    苦逼的开发者,最终败给了一个任性的UI,系统原生UIAlertController的按纽颜色必须改.于是,开始了不归路.之前的版本是自己用view写的一个仿系统UIActionSheet,动画感觉都挺 ...

  6. 富文本编辑器UEditor自定义工具栏(三、自定义工具栏功能按钮图标及工具栏样式简单修改)

    导读 富文本编辑器UEditor提供丰富了定制配置项,如果想设置个性化的工具栏按钮图标有无办法呢?答案是肯定的!前两篇博文简要介绍了通过将原工具栏隐藏,在自定义的外部按钮上,调用UEditor各命令实 ...

  7. 【原创】Java基础之简单修改jar包中的class

    有时需要修改很多jar(假设这些jar都位于lib目录)中其中一个jar中的某一个类,而且又没有原始代码或ide,这时最简单的方式是: 1 进入lib目录 # cd lib # ls test.jar ...

  8. webpack简单修改版本号(单页面)

    写了一个js文件,可以尽量最简单的修改版本号 package.json配置: updateV.js放置位置: updateV.js: var fs = require('fs'); //文件读写 va ...

  9. 简单修改cramfs

    首先进入root用户,确保LINUX系统下装有cramfsprogs,没有的话get-apt install cramfsprogs, 找到.cramfs文件,输入命令cramfsck -x song ...

随机推荐

  1. git版本号回滚

    先说今天遇到的问题,看到一个config.php的配置文件一直在改动的状态下,可是和远程的config.php是不一致的,我不须要提交它,可是看它在 modified的状态下,非常不爽.想删除它.gi ...

  2. MariaDb数据库管理系统学习(二)使用HeidiSQL数据库图形化界面管理工具

    HeidiSQL 是一款用于简单化的 MySQL server和数据库管理的图形化界面.该软件同意你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等.此外,你能够从文本文件导入数据,执行 SQ ...

  3. C#整理

    输入输出--数据类型--变量与常量--运算符表达式--语句(顺序.分支.循环)--数组--函数--结构体一.输入与输出.Console.ReadLine();Console.WriteLine();C ...

  4. 在HTML中如何隐藏某段文字具体该怎么实现

    <p style="display:none;"> 需要隐藏的文字....... </p> <div style="display:none ...

  5. java学习笔记10--枚举

    java学习笔记10--枚举 在JDK1.5之前,java可以有两种方式定义新类型:类和接口.对于大部分面向对 象编程来说,这两种方法看起来似乎足够了,但是在一些特殊情况下,这些方法就不适合.例如,想 ...

  6. 浅谈Jquery的使用上篇

    一. 1.Jquery是什么?有什么特性? jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取.HTML 元素操作. CSS 操作 .HTML 事 ...

  7. php使用http请求头实现文件下载

    众所周知php对http协议的依赖特别强,像java或者asp.net在某些情况下可以不依赖http例如asp.net的winform,对php来说文件下载可以使用http的请求头加上php的IO就可 ...

  8. VLC笔记 它 立志

    不过,别忘了找工作的时候毕业,我说:"至少不会操心你会饿死了". 直到刚刚我才认为我妈有点过于乐观了. 今天下午,在做vlc如今播放器部分,一堆代码看的我头大. 正在此时,boss ...

  9. 《windows核心编程系列》十八谈谈windows钩子

    windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功 ...

  10. c++一些语法模板

    函数模板特 template <class T> int compare(T v1,T v2) { if(v1<v2) return -1; else if(v1>v2) re ...