博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3268-Silver Cow Party
阅读量:5036 次
发布时间:2019-06-12

本文共 1534 字,大约阅读时间需要 5 分钟。

把地图转置一下就OK。

#include
#include
#define INF 0xfffffff#define N 1005int map1[N][N],map2[N][N],dis1[N],dis2[N],vis[N],n,m,x;void dijkstra(){ int i,j,k,min; memset(vis,0,sizeof(vis)); vis[x]=1; for(i=1;i<=n;i++) dis1[i]=map1[x][i]; for(i=1;i<=n;i++) { min=INF; for(j=1;j<=n;j++) if(!vis[j]&&dis1[j]
dis1[k]+map1[k][j]) dis1[j]=dis1[k]+map1[k][j]; } return;} int main(void){ int i,j,a,b,t,temp,max; while(scanf("%d%d%d",&n,&m,&x)!=EOF) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) { map1[i][j]=INF; map2[i][j]=0; if(i==j) map1[i][j]=0; } while(m--) { scanf("%d%d%d",&a,&b,&t); map1[a][b]=t; } dijkstra(); for(i=1;i<=n;i++) dis2[i]=dis1[i]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(!map2[i][j]&&!map2[j][i]) { temp=map1[i][j]; map1[i][j]=map1[j][i]; map1[j][i]=temp; map2[i][j]=map2[j][i]=1; } } } dijkstra(); max=0; for(i=1;i<=n;i++) { temp=dis1[i]+dis2[i]; if(temp>max) max=temp; } printf("%d\n",max); } return 0;}

转载于:https://www.cnblogs.com/YogurtShen/archive/2012/08/30/2664308.html

你可能感兴趣的文章
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>
ArchLinux安装开源VMware Tools
查看>>
DB2 锁升级示例1
查看>>
16.RDD实战
查看>>
MainFrame知识小结(20120210)—dfsort/syncsort中的数据类型
查看>>
D - Flip tile
查看>>