zoukankan      html  css  js  c++  java
  • UVA 125 Numbering Paths

    UVA_125

        由于a->b的路径条数等于a->i与i->b的路径条数的乘积之和,因此在用floyd的过程中我们就可以算出a->b之间的路径条数,同时,如果a->b有无线条路径的话,那么一定存在a->b路径上的某点k使得f[k][k]!=0的。

    #include<string.h>
    #include<stdio.h>
    #define MAXD 110
    int M, N, f[MAXD][MAXD];
    void init()
    {
    int i, j, a, b;
    N = 0;
    memset(f, 0, sizeof(f));
    for(i = 0; i < M; i ++)
    {
    scanf("%d%d", &a, &b);
    f[a][b] = 1;
    if(a > N)
    N = a;
    if(b > N)
    N = b;
    }
    }
    void solve()
    {
    int i, j, k;
    for(k = 0; k <= N; k ++)
    for(i = 0; i <= N; i ++)
    for(j = 0; j <= N; j ++)
    if(f[i][k] && f[k][j])
    f[i][j] += f[i][k] * f[k][j];
    for(k = 0; k <= N; k ++)
    if(f[k][k])
    {
    for(i = 0; i <= N; i ++)
    for(j = 0; j <= N; j ++)
    if(f[i][k] && f[k][j])
    f[i][j] = -1;
    }
    for(i = 0; i <= N; i ++)
    {
    for(j = 0; j <= N; j ++)
    {
    if(j)
    printf(" ");
    printf("%d", f[i][j]);
    }
    printf("\n");
    }
    }
    int main()
    {
    int t = 0;
    while(scanf("%d", &M) == 1)
    {
    init();
    printf("matrix for city %d\n", t ++);
    solve();
    }
    return 0;
    }
  • 相关阅读:
    51串口通信
    juicer使用备忘
    51单片机音乐盒程序
    最精简24L01程序--接收
    sqlserver 数据库迁移
    sqlserver自增主键
    js keycode
    tabindex 去掉虚线
    div 绑定keyup
    sqlserver 当前时间减去30天
  • 原文地址:https://www.cnblogs.com/staginner/p/2223456.html
Copyright © 2011-2022 走看看