Metal Steak

Hard to eat

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 79 Stories :: 0 Comments :: 0 Trackbacks

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

int    n, m, x, y;
int    map[101][101];
int    prev[101][101];

void
__read__()
{
    cin 
>> n >> m >> x >> y;
    
forint i = 1; i <= n; i++ )
        
forint j = 1; j <= n; j++ )
            map[i][j] 
= 9999999;
    
forint i = 1; i <= m; i++ )
    {
        
int p, q;
        cin 
>> p >> q;
        map[p][q] 
=
        map[q][p] 
= 1;
    }
}

void
__floyd__()
{
    
forint k = 1; k <= n; k++ )
        
forint i = 1; i <= n; i++ )
            
forint j = 1; j <= n; j++ )
                
if( i != k && j != k && i != j )
                    
if( map[i][j] > map[i][k] + map[k][j] )
                    {
                        map[i][j] 
= map[i][k] + map[k][j];
                        prev[i][j] 
= k;
                    }
}

void
__outp__( 
int start )
{
    
if( start != 0 )
    {
        __outp__( prev[x][start] );
        cout 
<< "->" << start;
    }
}

int
main()
{
    __read__();
    __floyd__();
    cout 
<< x; __outp__( prev[x][y] ); cout << "->" << y << endl;

    
return 0;
}

posted on 2009-09-16 19:36 mad4alcohol 阅读(145) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理