zoukankan      html  css  js  c++  java
  • POJ 3660 Cow Contest【floyd】

    题目链接:

    http://poj.org/problem?id=3660

    题目大意:

    给出n头牛,m个关系,关系为a的战力比b高。求最后可以确定排名的牛的数量

    思路:

    1.如果一头牛跟其他所有牛都确定了一个输赢关系,那么该牛的排名就得到了确定,所以用floyd跑一遍传递闭包。然后求得每个点的出度(赢了), 入度(输了)。若该点的度之和为 n - 1 ,即确定排名。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #define mem(a, b) memset(a, b, sizeof(a))
     4 const int MAXN = 110;
     5 
     6 int n;
     7 int map[MAXN][MAXN];  //表示i赢j 
     8 int in[MAXN], out[MAXN];
     9 
    10 void floyd()
    11 {
    12     for(int k = 1; k <= n; k ++)
    13         for(int i = 1; i <= n; i ++)
    14             for(int j = 1; j <= n; j ++)
    15                 if(map[i][k] && map[k][j])
    16                     map[i][j] = 1;
    17 }
    18 
    19 int main()
    20 {
    21     int m;
    22     scanf("%d%d", &n, &m);
    23     for(int i = 1; i <= m; i ++)
    24     {
    25         int a, b;
    26         scanf("%d%d", &a, &b);
    27         map[a][b] = 1;
    28     }
    29     floyd();
    30     for(int i = 1; i <= n; i ++)
    31         for(int j = 1; j <= n; j ++)
    32             if(map[i][j])
    33             {
    34                 out[i] ++;
    35                 in[j] ++;
    36             }
    37     int ans = 0;
    38     for(int i = 1; i <= n; i ++)
    39         if(out[i] + in[i] == n - 1)
    40             ans ++;
    41     printf("%d
    ", ans);
    42     return 0;
    43 }
    View Code
  • 相关阅读:
    Linux之文档与目录结构
    Linux介绍
    CentOS7下zip解压和unzip压缩文件
    yum 命令讲解
    Linux安装redis
    pip更新问题
    第一章-KS8初体验 安装部署
    MVC Razor视图引擎
    MVC 组件之间的关系
    Web应用程序和网站的区别
  • 原文地址:https://www.cnblogs.com/yuanweidao/p/11650093.html
Copyright © 2011-2022 走看看