zoukankan      html  css  js  c++  java
  • 【POJ】1502 MPI Maelstrom

    题目链接:http://poj.org/problem?id=1502

    题意:一个处理器给n-1个处理器发送广播,问最短时间。广播时并发,也就是各个路径就大的一方。输入如果是x的话说明两个处理器不能相互通信。输入是矩阵的左三角。

    题解:一个最短路的裸题吧。输入的时候注意一下字符的转换。floyd爆一遍之后再对每个路径找最大值即可。

    代码:

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cstring>
     4 #include<iostream>
     5 using namespace std;
     6  
     7 const int N=110;
     8 const int inf = 1e9;
     9 char s[20];
    10 int n;
    11 int mp[N][N];
    12 
    13 
    14 void init(){
    15     for(int i = 1 ; i <=  n ;i++){
    16         for(int j = 1; j <= n ;j++){
    17             if(i == j){
    18                 mp[i][j] = 0;
    19             }
    20             else{
    21                 mp[i][j] = inf;
    22             }
    23         }
    24     }
    25 }
    26 void floyd(){
    27     for(int k = 1; k <= n ; k++){
    28         for(int i = 1; i <= n ;i++){
    29             for(int j = 1; j <= n ;j++){
    30                 mp[i][j] = min(mp[i][j],mp[i][k] + mp[k][j]);
    31             }
    32         }
    33     }
    34     int ans = -inf;
    35     for(int i = 1; i <= n ;i++){
    36         if(mp[1][i] != inf){
    37             ans = max(ans,mp[1][i]);
    38         }
    39 
    40     }
    41     cout<<ans<<endl;
    42 }
    43  
    44 int main(){
    45     cin>>n;
    46     init();
    47     for(int i = 2; i <= n ;i++){
    48         for(int j = 1; j < i; j++){
    49             cin>>s;
    50             if(s[0]!= 'x'){
    51                 int num = atoi(s);
    52                 mp[i][j] = mp[j][i] = num;
    53             }
    54         }
    55     }
    56     floyd();
    57     return 0;
    58 }
  • 相关阅读:
    在Android中使用Handler和Thread线程
    getCacheDir用法
    OAuth协议
    android开发参考网站
    常用的地址
    LayoutInflater获取方式
    java for map
    ubuntu12.04+nginx+apc
    ubuntu12.04 + dropbox
    yii + 获取 control + action
  • 原文地址:https://www.cnblogs.com/Asumi/p/9740482.html
Copyright © 2011-2022 走看看