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 ≤ N; A ≠ 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); } }
相关推荐
有n头牛比赛,m种比赛结果,最后问你一共有多少头牛的排名被确定了,其中如果a战胜b,b战胜c,则也可以说a战胜c,即可以传递胜负。这样如果一头牛的被x头牛打败,打败y头牛,且x+y=n-1,则我们容易知道这头牛的排名...
【标题】"Ulm Local Contest1996-1999" 涉及的是一场持续四年的算法竞赛,这个系列比赛是ACM(国际计算机科学联盟)International Collegiate Programming Contest(ICPC)的一部分。ICPC是全球范围内极具影响力的大...
学习和研究这个竞赛的题目和解答,不仅可以帮助我们掌握基础的编程技能,还能让我们深入理解高级算法,比如最短路径算法(Dijkstra、Floyd-Warshall)、最小生成树算法(Prim、Kruskal)、动态规划应用(背包问题、...
根据给定的文件信息,我们可以深入探讨DPA Contest V2的相关知识点,这涉及到侧信道攻击(Side Channel Attacks)中的差分功耗分析(Differential Power Analysis,简称DPA),尤其是针对高级加密标准(Advanced ...
《ConTest-1.0.8:对抗Win32/Conficker蠕虫的利器》 在信息技术领域,安全始终是不容忽视的重要环节。Win32/Conficker蠕虫,又称为“飞客”蠕虫,是一款极具破坏性的恶意软件,自2008年首次出现以来,对全球范围内...
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 UCF Local Contest — September 5, 2015 UCF Local Contest — September 5, 2015
《2019 Multi-University Training Contest 4:探索ACM竞赛的魅力与技术深度》 在编程竞赛的世界里,HDU(Hangzhou Dianzi University)举办的Multi-University Training Contest一直备受关注,尤其是2019年的第六...
这样的代码可以帮助参赛者理解算法的实现细节,并可以应用于类似“美赛”(Mathematical Contest in Modeling)这样的竞赛,解决实际问题。 在实际应用中,Floyd算法不仅可以用于解决交通网络中的最短路径问题,还...
USACO 2024 January Contest, BronzeProblem 3. Balancing Bacteria
### 数学竞赛问题书籍V:美国高中数学考试与邀请赛问题精选 #### 书籍概述 《数学竞赛问题书籍V》是一本集成了1983年至1988年美国高中数学考试(American High School Mathematics Examinations, AHSME)及美国...
《2019 Multi-University Training Contest 9 HDU多校第9场题解解析》 在编程竞赛的世界中,ACM(国际大学生程序设计竞赛)是一项备受瞩目的活动,它旨在培养学生的算法设计、问题解决和编程能力。2019年,多所大学...
2. **图论**:图的遍历(深度优先搜索和广度优先搜索)、最短路径算法(Dijkstra、Floyd-Warshall、Bellman-Ford)、最小生成树(Prim、Kruskal)等,这些都是解决网络流、旅行商问题等经典问题的关键。 3. **动态...
这是08年D类样题仅供大家备考使用2008 National English Contest for College Students (Level D) (Sample)
【标题】"Southeastern European Regional Programming Contest 2007 测试数据"是指一场编程竞赛的测试数据集,这是2007年东南欧区域编程比赛的一部分。在这场比赛中,参赛者需要解决一系列的算法问题,而这些测试...
UMAP Journal 36.2是2015年ICM竞赛(即Interdisciplinary Contest in Modeling,跨学科建模竞赛)的相关文献,由美国数学及其应用联合会(COMAP, Inc.)出版。这篇杂志是一本综合性的学术期刊,涵盖了许多与数学建模...
【标题】"2014 Multi-University Training Contest 2(标程+数据)" 提供的是一个编程竞赛的资源集合,主要包含了该比赛的样例程序(标程)和测试数据,帮助参赛者理解和准备比赛。这次竞赛是2014年举办的,可能涉及...
Andrew Stankevich Contest 45是由Artem Vasilev和Pavel Krotkov两位来自ITMO大学的参赛者在2016年4月举办的北京大学集训营中进行的问题分析。这次竞赛包含了多个具体的算法问题,并针对每个问题给出了详细的解决...
【标题】"POJ2187-Beauty Contest"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Set of Peking University)。这个竞赛题目通常被用来测试参赛者的算法设计和问题解决能力。 【描述】"北大POJ2187-...