zoukankan      html  css  js  c++  java
  • Poj3660(floyd)

    题目传送门

    题意:编号为1-N的奶牛参加比赛,告诉我们m场比赛结果试问有几头奶牛的排名可以确定。

    题解:其实就是一个传递闭包的模板题,用Floyd把所有有联系的比赛结果串在一起。

    Ac 代码:

    #include<bits/stdc++.h>
    using  namespace std;
    const int maxn=1e2+5;
    int rp[maxn][maxn]; //rp[i][j]=1表示编号为i的奶牛战胜编号为j的奶牛;
    int n,m,u,v;
    void floyd()
    {
        for(int k=1;k<=n;k++)
        {
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(rp[i][k]&&rp[k][j])  //求传递闭包;
                    {
                        rp[i][j]=1;
                    }
                }
            }
        }
        // 可以打印处理过的rp数组帮助理解;
       /* for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cout<<rp[i][j]<<" ";
            }
            cout<<endl;
        }*/
        int ans=0,j;
        for(int i=1;i<=n;i++)
        {
            for( j=1;j<=n;j++)
            {   
                if(i==j) continue;
                if(rp[i][j]==0&&rp[j][i]==0) break;  
            }
            if(j>n) ans++;  
        }
        printf("%d
    ",ans);
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        memset(rp,0,sizeof rp);
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&u,&v);
            rp[u][v]=1;
        }
        floyd();
        return 0;
    }
    

  • 相关阅读:
    Navicat12激活,最新版本v12.1.18,原版激活[windows]
    【工具】Fiddler使用教程
    MongoDB笔记
    MongoDB
    MySQL三层结构、用户权限、索引设计原则
    Ajax
    linux简单优化
    linux基本
    Memcached
    Django+Uwsgi+Nginx
  • 原文地址:https://www.cnblogs.com/zpj61/p/13435923.html
Copyright © 2011-2022 走看看