`
Simone_chou
  • 浏览: 192587 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Cow Contest(Floyd 传递闭包)

 
阅读更多
Cow Contest
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 7104   Accepted: 3921

Description

N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competitors.

The contest is conducted in several head-to-head rounds, each between two cows. If cow A has a greater skill level than cow B (1 ≤ A ≤ N; 1 ≤ B ≤ NA ≠ B), then cow A will always beat cow B.

Farmer John is trying to rank the cows by skill level. Given a list the results of M (1 ≤ M ≤ 4,500) two-cow rounds, determine the number of cows whose ranks can be precisely determined from the results. It is guaranteed that the results of the rounds will not be contradictory.

Input

* Line 1: Two space-separated integers: N and M
* Lines 2..M+1: Each line contains two space-separated integers that describe the competitors and results (the first integer, A, is the winner) of a single round of competition: A and B

Output

* Line 1: A single integer representing the number of cows whose ranks can be determined
 

Sample Input

5 5
4 3
4 2
3 2
1 2
2 5

Sample Output

2

 

       题意:

       给出 n(1 ~ 100) 和 m(1 ~ 4500),代表有 n 个结点还有 m 个关系。后给出 m 条关系,每次给出 a 和 b,代表 a > b。问根据这些关系,能最终确定排名的一共有多少个节点。

 

       思路:

       Floyd 传递闭包。如果这个结点能确定出第几,说明经过 Floyd 闭包后,与其他每个结点都会有一个确定的关系,要不就是 你大于我,要不就是 我大于你,如果 Map [ i ] [ j ] 和 Map [ j ] [ i ] 都为 0 ,说明两者之间的关系还没有确定。那么这个点就不能确定出第几名。所以最终判断有多少个结点满足与除了自己外的所有点都有 Map [ i ] [ j ] || Map [ j ] [ i ] 的即可。

 

       AC:

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int Map[105][105];
int n;

void floyd () {
    for (int k = 1; k <= n; ++k) {
        for (int i = 1; i <= n; ++i) {
            for (int j = 1; j <= n; ++j) {
                if (Map[i][k] && Map[k][j])
                    Map[i][j] = 1;
            }
        }
    }
}

int main() {
    int m;

    while (~scanf("%d%d", &n, &m) && (n + m)) {
        memset(Map, 0, sizeof(Map));

        while (m--) {
            int a, b;
            scanf("%d%d", &a, &b);
            Map[a][b] = 1;
        }

        floyd();

        int ans = 0;
        for (int i = 1; i <= n; ++i) {
            int j;
            for (j = 1; j <= n; ++j) {
                if (i == j) continue;
                if (!Map[i][j] && !Map[j][i]) break;
            }

            if (j == n + 1) ++ans;
        }

        printf("%d\n", ans);
    }
}

 

 

分享到:
评论

相关推荐

    Cow Contest

    有n头牛比赛,m种比赛结果,最后问你一共有多少头牛的排名被确定了,其中如果a战胜b,b战胜c,则也可以说a战胜c,即可以传递胜负。这样如果一头牛的被x头牛打败,打败y头牛,且x+y=n-1,则我们容易知道这头牛的排名...

    Ulm Local Contest1996-1999

    【标题】"Ulm Local Contest1996-1999" 涉及的是一场持续四年的算法竞赛,这个系列比赛是ACM(国际计算机科学联盟)International Collegiate Programming Contest(ICPC)的一部分。ICPC是全球范围内极具影响力的大...

    2008 Benelux Algorithm Programming Contest.rar

    学习和研究这个竞赛的题目和解答,不仅可以帮助我们掌握基础的编程技能,还能让我们深入理解高级算法,比如最短路径算法(Dijkstra、Floyd-Warshall)、最小生成树算法(Prim、Kruskal)、动态规划应用(背包问题、...

    DPA Contest V2

    根据给定的文件信息,我们可以深入探讨DPA Contest V2的相关知识点,这涉及到侧信道攻击(Side Channel Attacks)中的差分功耗分析(Differential Power Analysis,简称DPA),尤其是针对高级加密标准(Advanced ...

    ConTest-1.0.8

    《ConTest-1.0.8:对抗Win32/Conficker蠕虫的利器》 在信息技术领域,安全始终是不容忽视的重要环节。Win32/Conficker蠕虫,又称为“飞客”蠕虫,是一款极具破坏性的恶意软件,自2008年首次出现以来,对全球范围内...

    UMAP Journal 38.2 2017 ICM Contest

    Turn theory into practice by entering COMAP's Mathematical Contest in Modeling (MCM). The study of mathematics as a subject in its own right may have started with Pythagoras, but people have been ...

    UCF Local Contest — September 5, 2015.pdf

    UCF Local Contest — September 5, 2015 UCF Local Contest — September 5, 2015 UCF Local Contest — September 5, 2015

    2019 Multi-University Training Contest 4(2019hdu多校第六场数据与标程)rar

    《2019 Multi-University Training Contest 4:探索ACM竞赛的魅力与技术深度》 在编程竞赛的世界里,HDU(Hangzhou Dianzi University)举办的Multi-University Training Contest一直备受关注,尤其是2019年的第六...

    美赛常用模型案例- 图论模型-Floyd算法 Matlib.rar

    这样的代码可以帮助参赛者理解算法的实现细节,并可以应用于类似“美赛”(Mathematical Contest in Modeling)这样的竞赛,解决实际问题。 在实际应用中,Floyd算法不仅可以用于解决交通网络中的最短路径问题,还...

    USACO 2024 January Contest, BronzeProblem 3. Balancing Bacteria

    USACO 2024 January Contest, BronzeProblem 3. Balancing Bacteria

    math contest problem book V

    ### 数学竞赛问题书籍V:美国高中数学考试与邀请赛问题精选 #### 书籍概述 《数学竞赛问题书籍V》是一本集成了1983年至1988年美国高中数学考试(American High School Mathematics Examinations, AHSME)及美国...

    有2019 Multi-University Training Contest 9,hdu多校第9场的题解.zip

    《2019 Multi-University Training Contest 9 HDU多校第9场题解解析》 在编程竞赛的世界中,ACM(国际大学生程序设计竞赛)是一项备受瞩目的活动,它旨在培养学生的算法设计、问题解决和编程能力。2019年,多所大学...

    Ulm Local Contest 2008

    2. **图论**:图的遍历(深度优先搜索和广度优先搜索)、最短路径算法(Dijkstra、Floyd-Warshall、Bellman-Ford)、最小生成树(Prim、Kruskal)等,这些都是解决网络流、旅行商问题等经典问题的关键。 3. **动态...

    2008 National English Contest for College Students (Level D) (Sample)

    这是08年D类样题仅供大家备考使用2008 National English Contest for College Students (Level D) (Sample)

    Southeastern European Regional Programming Contest 2007 测试数据

    【标题】"Southeastern European Regional Programming Contest 2007 测试数据"是指一场编程竞赛的测试数据集,这是2007年东南欧区域编程比赛的一部分。在这场比赛中,参赛者需要解决一系列的算法问题,而这些测试...

    UMAP Journal 36.2 2015 ICM Contest

    UMAP Journal 36.2是2015年ICM竞赛(即Interdisciplinary Contest in Modeling,跨学科建模竞赛)的相关文献,由美国数学及其应用联合会(COMAP, Inc.)出版。这篇杂志是一本综合性的学术期刊,涵盖了许多与数学建模...

    2014 Multi-University Training Contest 2(标程+数据)

    【标题】"2014 Multi-University Training Contest 2(标程+数据)" 提供的是一个编程竞赛的资源集合,主要包含了该比赛的样例程序(标程)和测试数据,帮助参赛者理解和准备比赛。这次竞赛是2014年举办的,可能涉及...

    Andrew Stankevich Contest 45 Problem analysis

    Andrew Stankevich Contest 45是由Artem Vasilev和Pavel Krotkov两位来自ITMO大学的参赛者在2016年4月举办的北京大学集训营中进行的问题分析。这次竞赛包含了多个具体的算法问题,并针对每个问题给出了详细的解决...

    POJ2187-Beauty Contest

    【标题】"POJ2187-Beauty Contest"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Set of Peking University)。这个竞赛题目通常被用来测试参赛者的算法设计和问题解决能力。 【描述】"北大POJ2187-...

Global site tag (gtag.js) - Google Analytics