POJ1122
来源:互联网 发布:苹果电脑 知乎 编辑:程序博客网 时间:2024/05/17 01:35
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define INF 999999999
int n,map[30][30],m;
int fire,sa[30];
int path[30][30];
int ans[30];
bool cmp(int a,int b)
{
return map[sa[a]][fire]<map[sa[b]][fire];
}
void dfs(int i,int j)
{
if(path[i][j]!=-1)
{
dfs(i,path[i][j]);
printf("\t%d",path[i][j]);
dfs(path[i][j],j);
}
}
int main()
{
int i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&map[i][j]);
if(map[i][j]==-1)
map[i][j]=INF;
}
}
scanf("%d",&fire);
m=0;
int x;
while(~scanf("%d",&x))
sa[++m]=x;
memset(path,-1,sizeof(path));
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(map[i][j] > map[i][k]+map[k][j])
{
map[i][j] = map[i][k]+map[k][j];
path[i][j] = k;
}
}
}
}
for(i=1;i<=m;i++)
ans[i]=i;
printf("Org\tDest\tTime\tPath\n");
sort(ans+1,ans+1+m,cmp);
for(i=1;i<=m;i++)
{
printf("%d\t%d\t%d\t",sa[ans[i]],fire,map[sa[ans[i]]][fire]);
if(sa[ans[i]]==fire)
printf("%d\n",fire);
else
{
printf("%d",sa[ans[i]]);
dfs(sa[ans[i]],fire);
printf("\t%d\n",fire);
}
}
}
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define INF 999999999
int n,map[30][30],m;
int fire,sa[30];
int path[30][30];
int ans[30];
bool cmp(int a,int b)
{
return map[sa[a]][fire]<map[sa[b]][fire];
}
void dfs(int i,int j)
{
if(path[i][j]!=-1)
{
dfs(i,path[i][j]);
printf("\t%d",path[i][j]);
dfs(path[i][j],j);
}
}
int main()
{
int i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&map[i][j]);
if(map[i][j]==-1)
map[i][j]=INF;
}
}
scanf("%d",&fire);
m=0;
int x;
while(~scanf("%d",&x))
sa[++m]=x;
memset(path,-1,sizeof(path));
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(map[i][j] > map[i][k]+map[k][j])
{
map[i][j] = map[i][k]+map[k][j];
path[i][j] = k;
}
}
}
}
for(i=1;i<=m;i++)
ans[i]=i;
printf("Org\tDest\tTime\tPath\n");
sort(ans+1,ans+1+m,cmp);
for(i=1;i<=m;i++)
{
printf("%d\t%d\t%d\t",sa[ans[i]],fire,map[sa[ans[i]]][fire]);
if(sa[ans[i]]==fire)
printf("%d\n",fire);
else
{
printf("%d",sa[ans[i]]);
dfs(sa[ans[i]],fire);
printf("\t%d\n",fire);
}
}
}
0 0
- POJ1122
- POJ1122
- POJ1122 DIJKSTRA
- Poj1122解题报告(水~~~~)
- poj1122 - FDNY to the Rescue!
- zoj1053/poj1122-FDNY to the Rescue!
- poj1122&zoj1053 FDNY to the Rescue!(dijkstra+输出路径)
- IOS开发之UIButton同时设置图片文字以及触发按钮时文字图片的切换
- windows7/win7 iis的安装与配置(图解教程)
- zoj1074
- 【Cocos2d-x 状态机篇】第0章--木头学状态,一副自恋的姿态~
- vitualbox上安装ubuntu——空间不足&安装程序内部崩溃
- POJ1122
- java不常用关键字
- ORA-00001: unique constraint (...) violated并不一定是数据冲突
- MFC Radio Button 使用 分组 RadioButton 用法
- 为啥不离线编程呢?
- 韩官方称沉船事故已有164人获救 293人仍失踪
- zoj1081
- 求a,b两个数中的大者(函数调用)
- 第六周作业1——利用哈夫曼编码英文字母表