POJ 2472 106 miles to Chicago(最短路)
2012-04-12 18:09
441 查看
题目连接:http://poj.org/problem?id=2472
题意:男孩要从1到n城市,每条道路有他不被抓的百分比,输出他到n不被抓的最大概率。
题目的数据有些问题,边开到20W才过,求最长路径即可。
参考代码:
题意:男孩要从1到n城市,每条道路有他不被抓的百分比,输出他到n不被抓的最大概率。
题目的数据有些问题,边开到20W才过,求最长路径即可。
参考代码:
#include<iostream> #include<cstring> #include<queue> #include<cstdio> using namespace std; #define INS 0.0 #define N 1005 //顶点的个数 #define SIZE 200005 //边的个数 #define CLR(arr,v) memset(arr,v,sizeof(arr)) class short_path{ public: short_path(){} void init(int m,int n){ num_ed = m;num_v = n; CLR(des,0);CLR(next,0); CLR(h,0); for(int i = 0;i < N;++i) dis[i] = INS; while(!q.empty()) q.pop(); } void add(int u,int v,double f){ des[++pos] = v; val[pos] = f; next[pos] = h[u]; h[u] = pos; } double Dijkstra(int start,int end){ dis[start] = 100.0; mid.d = start; mid.v = 100.0; q.push(mid); while(!q.empty()){ int s = q.top().d,v = q.top().v; q.pop(); for(int i = h[s]; i ;i = next[i]){ if(dis[s] * val[i] / 100 > dis[ des[i] ]){ dis[ des[i] ] = dis[s] * val[i] / 100; mid.d = des[i]; mid.v = dis[ des[i] ]; q.push(mid); } } } return dis[end]; } private: int h ,des[SIZE],next[SIZE]; double val[SIZE],dis ; int pos,num_ed,num_v; struct Edge{ int d; double v; bool operator<(const Edge &ed) const{ return v < ed.v; } }; struct Edge mid; priority_queue<Edge> q; }; class short_path sp; int main() { int m,n; while(~scanf("%d",&n),n) { scanf("%d",&m); sp.init(m,n); int u,v; double c; for(int i = 0;i < m;++i) { scanf("%d%d%lf",&u,&v,&c); sp.add(u,v,c); sp.add(v,u,c); } double res = sp.Dijkstra(1,n); printf("%.6lf percent\n",res); } }
相关文章推荐
- poj 2472--106 miles to Chicago-最短路flody
- 【POJ】2472 106 miles to Chicago 最短路
- poj 2472 106 miles to Chicago
- POJ 2472 &&ZOJ 2797 (106 miles to Chicago)
- POJ 2472 106 miles to Chicago
- POJ:2472 106 miles to Chicago
- poj 2472 106 miles to Chicago
- ZOJ 2797 POJ 2472 106 miles to Chicago
- POJ 2472 106 miles to Chicago
- zoj 2792 && poj 2472 106 miles to Chicago
- POJ 2472 ||SDUT 2358 106 miles to Chicago(Dijkstra算法变形)
- poj 2472 106 miles to Chicago a->b有安全概率,求i->j安全概率最大的一条路
- POJ 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago
- Poj 2472 106 miles to Chicago【Floyd】
- poj 2472 106 miles to Chicago
- POJ 2472 106 miles to Chicago(Floyd)
- POJ 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago floyd
- poj 2472 106 miles to Chicago