zoukankan      html  css  js  c++  java
  • POJ 3660 Cow Contest (Floyd)

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

    题意是给你n头牛,给你m条关系,每条关系是a牛比b牛厉害,问可以确定多少头牛的排名。

    要是a比b厉害,a到b上就建一条有向边......这样建好之后,如果比a牛厉害的牛都能达到a牛,而a牛能到达比a牛差的牛的话,牛的头数又恰好是n-1头,那么a牛的排名则是确定的。

    所以用Flody比较方便,要是i到k能到达,k到j能到达,那么i到j就能到达,i就比j厉害。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 const int MAXN = 105;
     6 bool cost[MAXN][MAXN];
     7 
     8 void init() {
     9     memset(cost , false , sizeof(cost));
    10 }
    11 
    12 int main()
    13 {
    14     int n , m , u , v;
    15     while(cin >> n >> m) {
    16         init();
    17         while(m--) {
    18             cin >> u >> v;
    19             cost[u][v] = true;
    20         }
    21         for(int k = 1 ; k <= n ; k++) {
    22             for(int j = 1 ; j <= n ; j++) {
    23                 for(int i = 1 ; i <= n ; i++) {
    24                     if(cost[i][k] && cost[k][j]) 
    25                         cost[i][j] = true;
    26                 }
    27             }
    28         }
    29         int cont , res = 0;
    30         for(int i = 1 ; i <= n ; i++) {
    31             cont = 0;
    32             for(int j = 1 ; j <= n ; j++) {
    33                 if(cost[i][j] != cost[j][i])
    34                     cont += 1;
    35             }
    36             if(cont == n - 1)
    37                 res++;
    38         }
    39         cout << res << endl;
    40     }
    41 }
  • 相关阅读:
    iOS RunTime
    js本地对象的操作
    js面向对象实现切换面板
    css3上下翻页效果
    Normalize.css用法
    javasript深度拷贝
    div中div水平垂直居中
    正则表达式匹配括号内网址
    ajax聊天
    移动端px转rem的两种方法
  • 原文地址:https://www.cnblogs.com/Recoder/p/5311452.html
Copyright © 2011-2022 走看看