uva10048 - Audiophobia()
2013-05-23 22:45
351 查看
在情急之下做的这道题,很快的按照floyd算法写完代码,结果连样例都不能过。。
以为自己写的代码的问题,就一直找代码的错误,结果没找到错误就结束了。。。。
后来,回头看这道题,,,,才发现自己根本没理解题意,,,
这道题是让求从a到b需要忍受的最小噪音,,
就是说在多条从a到b的路径中,每条路径都要选出它的最大路段,最后在这些路段中选出最小的即可。
然后,对代码来说,,,
只需要对floyd算法稍稍改一下就行了。。。
代码如下:
#include <cstdio>
#include <algorithm>
using namespace std;
#define M 105
#define INF 1000000
int d[M][M];
int n, m, t;
void init()
{
int a, b, w;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(i==j)d[i][j] = 0;
else d[i][j] = INF;
for(int i = 0; i < m; i++)
{
scanf("%d %d %d",&a,&b,&w);
d[a][b] = w;
d[b][a] = w;
}
}
void floyd()
{
for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(d[i][j]>max(d[i][k],d[k][j]))
d[i][j] = max(d[i][k],d[k][j]);
}
int main ()
{
int a, b, tt = 0;
while(scanf("%d%d%d",&n,&m,&t),n+m+t)
{
init();
floyd();
if(tt) printf("\n");
printf("Case #%d\n",++tt);
for(int i = 0; i < t; i++)
{
scanf("%d%d",&a,&b);
if(a>b) {int te = a; a = b; b = te;}
if(d[a][b]<INF) printf("%d\n",d[a][b]);
else printf("no path\n");
}
}
return 0;
}
以为自己写的代码的问题,就一直找代码的错误,结果没找到错误就结束了。。。。
后来,回头看这道题,,,,才发现自己根本没理解题意,,,
这道题是让求从a到b需要忍受的最小噪音,,
就是说在多条从a到b的路径中,每条路径都要选出它的最大路段,最后在这些路段中选出最小的即可。
然后,对代码来说,,,
只需要对floyd算法稍稍改一下就行了。。。
代码如下:
#include <cstdio>
#include <algorithm>
using namespace std;
#define M 105
#define INF 1000000
int d[M][M];
int n, m, t;
void init()
{
int a, b, w;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(i==j)d[i][j] = 0;
else d[i][j] = INF;
for(int i = 0; i < m; i++)
{
scanf("%d %d %d",&a,&b,&w);
d[a][b] = w;
d[b][a] = w;
}
}
void floyd()
{
for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(d[i][j]>max(d[i][k],d[k][j]))
d[i][j] = max(d[i][k],d[k][j]);
}
int main ()
{
int a, b, tt = 0;
while(scanf("%d%d%d",&n,&m,&t),n+m+t)
{
init();
floyd();
if(tt) printf("\n");
printf("Case #%d\n",++tt);
for(int i = 0; i < t; i++)
{
scanf("%d%d",&a,&b);
if(a>b) {int te = a; a = b; b = te;}
if(d[a][b]<INF) printf("%d\n",d[a][b]);
else printf("no path\n");
}
}
return 0;
}
相关文章推荐
- UVA 10048 Audiophobia
- UVA 10048 Audiophobia(Floyd算法)
- UVa 10048 Audiophobia(Floyed变形)
- Uva10048——Audiophobia
- UVA - 10048 Audiophobia (Floyd算法)
- 噪音恐惧症(Audiophobia,UVa10048)——floyd变形,最大最小化
- Uva - 10048 - Audiophobia(Floyd)
- uva_10048 Audiophobia
- UVa 10048 Audiophobia (任意两点最长边的最小化)
- Audiophobia - UVa 10048 Floyd
- Audiophobia UVA - 10048
- uva_10048_Audiophobia(floyd)
- UVa 10048 - Audiophobia(Floyd, Kruskal)
- uva 10048 - Audiophobia
- UVA 10048 Audiophobia(Floyd变形)
- (UVA - 10048) Audiophobia(floyd算法)
- UVa--10048 Audiophobia(floyd)
- Uva 10048 Audiophobia 【floyd】
- UVA 10048 Audiophobia
- POJ 3615 Cow Hurdles ,floyd 修改 , UVa 10048 Audiophobia