toj2134 106 miles to Chicago
2013-09-16 16:50
253 查看
题目链接:http://acm.tju.edu.cn/toj/showp2134.html
题目大意:从一个顶点到另一个顶点的概率最大(相比于dijkstra而言,由路径和最小,变成概率最大),稍作改变就行,一个意思。
思路:dijkstra, 记在这儿是为了当模板用的 - -! (1 A)
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
using namespace std;
double map[101][101];
double dist[101];
int visited[101];
int n;
double dij()
{
int i,j;
for(i=1;i<=n;i++)
dist[i] = map[1][i];
visited[1] = 1;
for(i=1;i<=n-1;i++)
{
double max = 0;
int pos;
for(j=1;j<=n;j++)
{
if(!visited[j] && dist[j]>max)
{
max = dist[j];
pos = j;
}
}
visited[pos] = 1;
for(j=1;j<=n;j++)
{
if(!visited[j]&& dist[pos]*map[pos][j]>dist[j])
dist[j]=dist[pos]*map[pos][j];
}
}
return dist
;
}
int main()
{
int i,j,k,m,a,b;
double c;
while(cin>>n && n)
{
cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i==j)
map[i][j] =1;
else
map[i][j] = 0;
}
for(i=0;i<m;i++)
{
cin>>a>>b>>c;
map[a][b]=map[b][a] = c/100;
}
memset(visited,0,sizeof(visited));
cout<<fixed<<setprecision(6);
cout<<dij()*100<<" percent"<<endl;
}
}
题目大意:从一个顶点到另一个顶点的概率最大(相比于dijkstra而言,由路径和最小,变成概率最大),稍作改变就行,一个意思。
思路:dijkstra, 记在这儿是为了当模板用的 - -! (1 A)
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
using namespace std;
double map[101][101];
double dist[101];
int visited[101];
int n;
double dij()
{
int i,j;
for(i=1;i<=n;i++)
dist[i] = map[1][i];
visited[1] = 1;
for(i=1;i<=n-1;i++)
{
double max = 0;
int pos;
for(j=1;j<=n;j++)
{
if(!visited[j] && dist[j]>max)
{
max = dist[j];
pos = j;
}
}
visited[pos] = 1;
for(j=1;j<=n;j++)
{
if(!visited[j]&& dist[pos]*map[pos][j]>dist[j])
dist[j]=dist[pos]*map[pos][j];
}
}
return dist
;
}
int main()
{
int i,j,k,m,a,b;
double c;
while(cin>>n && n)
{
cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i==j)
map[i][j] =1;
else
map[i][j] = 0;
}
for(i=0;i<m;i++)
{
cin>>a>>b>>c;
map[a][b]=map[b][a] = c/100;
}
memset(visited,0,sizeof(visited));
cout<<fixed<<setprecision(6);
cout<<dij()*100<<" percent"<<endl;
}
}
相关文章推荐
- POJ 2472 106 miles to Chicago(Floyd)
- poj 2472--106 miles to Chicago-最短路flody
- Poj 2472 106 miles to Chicago【Floyd】
- 【POJ】2472 106 miles to Chicago 最短路
- 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
- poj 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago
- POJ:2472 106 miles to Chicago
- (floyed反求最长路径)ZOJ 2797 106 miles to Chicago
- zoj - 2797 - 106 miles to Chicago
- ZOJ 2797 106 miles to Chicago(多校连萌,用最短路径求概率问题)
- poj 2472 106 miles to Chicago floyd
- zoj - 2797 - 106 miles to Chicago
- POJ 2472 106 miles to Chicago
- SPOJ - CHICAGO 106 miles to Chicago(乘积最短路)
- ZOJ 2797 106 miles to Chicago
- ZOJ 2797 POJ 2472 106 miles to Chicago