106 miles to Chicago---zoj2797(最短路问题,求概率,模板)
题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemId=1797
题意是有 n 个点 m 条边,从a到b的不被抓的概率是p,让求从点1到点n的不被抓的最大概率;
Dijkstra套一下就可以了,注意初始化;
ab到bc不被抓的概率等于ab不被抓的概率乘上bc不被抓的概率;
#include <stdio.h>
#include <algorithm>
#include<string.h>
#include<queue>
using namespace std; #define met(a, b) memset(a, b, sizeof(a))
#define MOD 1000000007
#define N 2050
#define INF 0x3f3f3f3f typedef long long LL; int n, m, G[N][N], vis[N]; double dist[N]; double Dijkstra(int s)
{
for(int i=; i<=n; i++)
dist[i] = G[s][i]; vis[s] = ; for(int i=; i<=n; i++)
{
double Min = -INF;
int Index = -; for(int j=; j<=n; j++)
{
if( !vis[j] && Min < dist[j])
{
Min = dist[j];
Index = j;
}
}
if(Index == -)break; vis[Index] = ; for(int j=; j<=n; j++)
{
if( !vis[j] && dist[j] < dist[Index]*G[Index][j]/100.0)
{
dist[j] = dist[Index]*G[Index][j]/100.0;
}
}
}
return dist[n];
} void Init()
{
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
G[i][j] = -INF;
dist[i] = -INF;
G[i][i] = vis[i] = ;
}
} int main()
{
int a, b, c;
while(scanf("%d", &n), n)
{
Init(); scanf("%d", &m); for(int i=; i<=m; i++)
{
scanf("%d%d%d", &a, &b, &c);
G[a][b] = G[b][a] = max(G[a][b], c);
} double ans = Dijkstra(); printf("%.6f percent\n", ans);
}
return ;
}
106 miles to Chicago---zoj2797(最短路问题,求概率,模板)的更多相关文章
- POJ 2472 106 miles to Chicago(Dijstra变形——史上最坑的最长路问题)
题目链接 :http://poj.org/problem?id=2472 Description In the movie "Blues Brothers", the orphan ...
- POJ 2472 106 miles to Chicago
最短路问题变形. 题意是给你一些道路,和路过时不被抓的概率. 要求找一条到达目的地时不被抓的最大概率概率. 初始 dis[]设为 1 .其余为 0 .找最大就可以. #include<cstdi ...
- POJ2472106 miles to Chicago
106 miles to Chicago Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3931 Accepted: 1 ...
- hdu3076--ssworld VS DDD(概率dp第三弹,求概率)
ssworld VS DDD Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图
关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...
- 字符串_KMP算法(求next[]模板 hdu 1711)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 问题描述:给两个序列a,b,长度分别为n,m(1<=n<=1000000,1< ...
- 倍增求lca模板
倍增求lca模板 https://www.luogu.org/problem/show?pid=3379 #include<cstdio> #include<iostream> ...
- 求最小正整数x,A^x=1(mod M)求阶模板
整数的阶:设a和n是互素的正整数,使得a^x=1(mod n)成立的最小的正整数x称为a模n的阶 //求阶模板:A^x=1(mod M),调用GetJie(A,M) //输入:10^10>A,M ...
- POJ3744Scout YYF I(求概率 + 矩阵快速幂)
Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6757 Accepted: 1960 Descr ...
随机推荐
- DM816x算法具体解释--之OSD
简单介绍: 本文介绍DM8168 DVRRDK中传入DSP内部的视频格式以及大概的处理流程. 背景: 可能有非常多人为了加快研发的速度.减少难度,选择在DVRRDk已有的OSD内加入自己的DSP算法. ...
- 【Java面试题】42 TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
应该是没有针对问题的确切的答案,当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,至于这个compareTo方法怎么做,就看当前这个对象的类中是如何编写这个方法的 试验如下: ...
- 实现QQ第三方登录教程(php)
参看地址:http://www.bcty365.com/content-10-2945-1.html
- dirname(__FILE__) 介绍
简单地说: __FILE__ 返回当前 路径+文件名 dirname(__FILE__) 返回当前文件路径的 路径部分 (后面没有“\”号) dirname(di ...
- Unity3D协程
协程介绍 Unity的协程系统是基于C#的一个简单而强大的接口 ,IEnumerator,它允许你为自己的集合类型编写枚举器.这一点你不必关注太多,我们直接进入一个简单的例子来看看协程到底能干什么.首 ...
- Chrome浏览器无法观看视频,一直提示“adobe flash player 已过期” ?
很多新用户在安装了Chrome浏览器或者更新过的的时候,经常提示“ adobe flash player 已过期”的问题,反复提示,导致无法观看视频.于是从网上也找了很多办法都没有解决.这里给大 ...
- Mysql课后思考题
1.请简述数据库.表和数据库服务器之间的关系? 知识点数据库存储结构 一个数据库服务器可以管理多个数据库,通常情况下开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据,会在数据库中创建多个表 ...
- redis客户端使用密码
./redis-cli -h 127.0.0.1 -p 6379 -a password
- 用命令行执行ROBOT FRAMEWORK用例
转自:http://www.51testing.com/html/86/n-1430786.html 除了在ride中执行用例,我们也可以通过命令行的形式执行用例. 1.执行一整个项目 pybot+项 ...
- 切换sprite
using UnityEngine; using System.Collections; public class BTN : MonoBehaviour { void Awake () { //s ...