ps:我天...之前看了迪杰斯特拉..现在这题要用到floyd。。就是先建一个图,然后从列开始遍历,每列里遍历行,行又对应每列...

从A列开始遍历每行,比如遍历到B,这时候B->A知道是2,接着又遍历第一行,比如对应到C,就是B->A->C,如果B->A->C比B->C小,就把B->C更新,

感觉Floyd就是求每个点是否必须出现在某两个点之间,找出最短路径

另外这题比较坑的是,a,b之间可以有多条路......WA了几次...

代码:

#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}
#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}

最新文章

  1. Android 指纹认证
  2. 【VB6】使用VB6创建和访问Dom树【爬虫基础知识 】
  3. 统计在从1到n的正整数中1出现的次数
  4. 【POJ 2482】Stars in Your Window
  5. JSP题库
  6. MYSQL安装--小白教程
  7. ActionLink()与jquery更好地结合建造MVC网页:
  8. springMVC源码分析之拦截器
  9. 如何将根文件系统制作成yaffs格式,并设置从yaffs启动
  10. HDU 2586 LCA
  11. HTML5 &lt;meta&gt; 标签属性,所有meta用法都在这里了
  12. 在CENTOS6上安装MONGODB
  13. Ubuntu 修改 Apache2 用户组 方法
  14. 《Programming WPF》翻译 第7章 6.视频和3-D
  15. SQL子句执行顺序和Join的一点总结
  16. zzu--2014年11月16日月潭赛 B称号
  17. 2017腾讯实习生Android客户端开发面试总结
  18. zepto.js介绍
  19. 【Android Developers Training】 80. 管理网络使用
  20. PyQt4 初试牛刀二

热门文章

  1. AX2012 QTY小数的位数问题
  2. yii2-basic后台管理功能开发之四:图片上传FileInput
  3. js 表单验证
  4. SharePoint 2013 List 备份使用
  5. datagrid 禁止点击行
  6. 一些随机数据的生成(日期,邮箱,名字,URL,手机号,日期等等)
  7. [整]磁盘 I/O 性能监控指标和调优方法
  8. DataTable数据导出CSV文件
  9. 4412开发板升级4.2之后改了logo开机后屏幕闪解决办法
  10. win7系统 .chm文件打不开的解决办法