POJ 2472 106 miles to Chicago

最短路问题变形。

题意是给你一些道路,和路过时不被抓的概率。要求找一条到达目的地时不被抓的最大概率概率。

初始 dis[]设为 1 。其余为 0 。找最大即可。

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
using namespace std;
int n,m;
struct lx
{
    int v;
    double p;
};
vector<lx> g[101];
void SPFA()
{
    double dis[101];
    bool vis[101];
    for(int i=1;i<=n;i++)
        dis[i]=0,vis[i]=0;
    dis[1]=1.0,vis[1]=1;
    queue<int>q;
    q.push(1);
    while(!q.empty())
    {
        int u=q.front();q.pop();
        vis[u]=0;
        for(int j=0;j<g[u].size();j++)
        {
            int v=g[u][j].v;
            double p=g[u][j].p;
            if(dis[v]<dis[u]*p)
            {
                dis[v]=dis[u]*p;
                if(!vis[v])
                {
                    vis[v]=1;
                    q.push(v);
                }
            }
        }
    }
    printf("%f percent\n",dis[n]*100);
}
int main()
{
    while(scanf("%d",&n),n)
    {
        scanf("%d",&m);
        for(int i=0;i<=n;i++)
            g[i].clear();
        int u,v;
        double p;
        while(m--)
        {
            scanf("%d%d%lf",&u,&v,&p);
            lx now;
            now.p=p/100.0;
            now.v=v;
            g[u].push_back(now);
            now.v=u;
            g[v].push_back(now);
        }
        SPFA();
    }
}
时间: 2025-02-01 11:00:09

POJ 2472 106 miles to Chicago的相关文章

POJ 2472 &amp;&amp;ZOJ 2797 (106 miles to Chicago)

链接:click here 题意: Elwood和Jack要从the Palace Hotel(顶点1)尽量躲避警察的追捕,驾车到Chicago(顶点n).现在有n个顶点,m条边,给出在每条边上不被警察追捕到的几率,问最终Elwood和Jack能安全到达Chicago而不被警察追捕到的最大概率是多少. 思路:就是求从起点到终点的最小概率 floyd 算法(也可以用逆向的dijkstra要求的不是最小的,而是最大的.),涉及到概率,注意一下精度. 参考代码; #include <iostream>

poj 2472

c提交 #include<stdio.h>double map[102][102]; void clear(int n){ int i,j;for(i=0;i<n;i++){ for(j=0;j<n;j++) { map[i][j]=-1; }}} double floyed(int n){int i,j,k;for(k=0;k<n;k++){ for(i=0;i<n;i++) for(j=0;j<n;j++) if(map[i][j]<map[i][k]*

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

图论常用算法之一 POJ图论题集【转载】

POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:http://poj.org/ 1062* 昂贵的聘礼 枚举等级限制+dijkstra 1087* A Plug for UNIX 2分匹配 1094 Sorting It All Out floyd 或 拓扑 1112* Team Them Up! 2分图染色+DP 1125 Stockbroker

题单二:图论500

http://wenku.baidu.com/link?url=gETLFsWcgddEDRZ334EJOS7qCTab94qw5cor8Es0LINVaGMSgc9nIV-utRIDh--2UwRLvsvJ5tXFjbdpzbjygEdpGehim1i5BfzYgYWxJmu ==========  以下是最小生成树+并查集=========================[HDU]1213         How Many Tables        基础并查集★1272         小

图论五百题!

生死看淡不服就淦,这才是人生! =============================以下是最小生成树+并查集======================================[HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基

图论精炼500题

忘了从哪转的了... =============================以下是最小生成树+并查集====================================== [HDU] 1213               How Many Tables                    基础并查集★ 1272               小希的迷宫                     基础并查集★ 1325&&poj1308    Is It A Tree?       

hdu图论题目分类

=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123

图论500题

=============================以下是最小生成树+并查集====================================== [HDU] 1213   How Many Tables   基础并查集★ 1272   小希的迷宫   基础并查集★ 1325&&poj1308  Is It A Tree?   基础并查集★ 1856   More is better   基础并查集★ 1102   Constructing Roads  基础最小生成树★ 12