poj1125
题目大意:哎,意思看了半天,看了别人的解释才明白,就是说从一个经纪人出发传递消息,直到所有人都收到消息
也就是说只要找到该经纪人到其它所有点的最短距离中的最大一个时间,就说明最后一个也收到消息了。
而我们所要做的就是找到从每个经纪人为出发点的这样一个时间,再取其中最小的就是题目所要的时间了
代码如下
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 const int maxs = 105; 6 const int INF = 0x3f3f3f3f; 7 int N,M; 8 int edge[maxs][maxs]; 9 void dijkstra() 10 { 11 int totalTime[N+1]; 12 memset(totalTime,0,sizeof(totalTime)); 13 for(int v=1;v<=N;v++) 14 { 15 int dist[maxs];//用来保存其它各点到选定点的最短距离 16 bool vis[maxs];//判断该点是否已经加入到集合中了 17 memset(vis,false,sizeof(vis)); 18 vis[v]=true; 19 for(int i=1;i<=N;i++) 20 dist[i]=edge[v][i]; 21 for(int i=1;i<=N;i++) 22 { 23 int mins=INF,k; 24 for(int j=1;j<=N;j++) 25 if(!vis[j]&&dist[j]<mins) 26 { 27 mins = dist[j]; 28 k=j; 29 } 30 vis[k]=true;//该点已经加入集合 31 //新的点加入,更新选定点到还没有被构造的点的最短距离 32 for(int j=1;j<=N;j++) 33 if(!vis[j]&&edge[k][j]<INF&&(dist[k]+edge[k][j])<dist[j]) 34 dist[j]=dist[k]+edge[k][j]; 35 } 36 totalTime[v]=dist[1]; 37 for(int i=2;i<=N;i++) 38 if(dist[i]>totalTime[v]) 39 totalTime[v]=dist[i]; 40 41 } 42 int index=1; 43 for(int i=2;i<N+1;i++) 44 if(totalTime[i]<totalTime[index]) 45 index=i; 46 if(totalTime[index]==INF) 47 printf("disjoint\n"); 48 else 49 printf("%d %d\n",index,totalTime[index]); 50 } 51 int main() 52 { 53 freopen("in.txt","r",stdin); 54 while(scanf("%d",&N)!=EOF&&N) 55 { 56 for(int i=1;i<=N;i++) 57 for(int j=1;j<=N;j++) 58 edge[i][j]=INF; 59 for(int i=1;i<=N;i++) 60 { 61 scanf("%d",&M); 62 int x,time; 63 edge[i][i]=0; 64 for(int j=1;j<=M;j++) 65 { 66 scanf("%d%d",&x,&time); 67 edge[i][x]=time; 68 } 69 } 70 dijkstra(); 71 } 72 return 0; 73 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构