POJ 3660 Cow Contest (floyd 传递闭包)
来源:互联网 发布:windows自带放大镜 编辑:程序博客网 时间:2024/06/06 01:06
题目地址:点击打开链接
题意:有n头牛,有强有弱,现在给出m个关系A B(表示A比B强),现在让你求有几头牛的排名是可以确定的。
思路:强弱关系是传递的,先求一次传递闭包,再枚举每头牛,若比他强的加上比他弱的牛数量为n-1,那么他的名
次就是确定的。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 105;int link[maxn][maxn], n, m;void floyd(){ for(int k = 1; k <= n; k++) for(int i = 1; i <= n; i++) if(link[i][k]) for(int j = 1; j <= n; j++) if(link[k][j]) link[i][j] = 1;}int solve(){ int res = 0; for(int i = 1; i <= n; i++) { int cnt = 0; for(int j = 1; j <= n; j++) { if(link[i][j]) cnt++; if(link[j][i]) cnt++; } if(cnt == n-1) res++; } return res;}int main(void){ while(cin >> n >> m) { memset(link, 0, sizeof(link)); while(m--) { int u, v; scanf("%d%d", &u, &v); link[u][v] = 1; } floyd(); printf("%d\n", solve()); } return 0;}
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 54 34 23 21 22 5
Sample Output
2
- poj 3660 Cow Contest floyd 传递闭包!!基础
- poj 3660 Cow Contest ----floyd 传递闭包
- POJ 3660 Cow Contest (Floyd 传递闭包)
- Poj 3660 Cow Contest (传递闭包 Floyd算法变形)
- POJ 3660 Cow Contest-floyd传递闭包
- POJ 3660 Cow Contest.(Floyd,传递闭包).
- POJ 3660 Cow Contest(Floyd传递闭包)
- poj 3660 Cow Contest(传递闭包 Floyd)
- POJ 3660 &&NYOJ 211 Cow Contest(Floyd传递闭包)
- POJ 3660 Cow Contest(floyd传递关系闭包)
- POJ 3660 Cow Contest(floyd传递闭包)
- POJ 3660 Cow Contest (Floyd 传递闭包)
- POJ 3660 Cow Contest (Floyd求传递闭包)
- POJ - 3660 - Cow Contest (floyd求传递闭包)
- Floyd传递闭包-POJ-3660-Cow Contest
- 【poj】3660 Cow Contest【floyd传递闭包】
- POJ-3660 Cow Contest (floyd+传递闭包)
- POJ 3660 Cow Contest(Floyd求传递闭包)
- 字符串的哈希处理
- 关于cs架构与bs架构
- Druid连接池
- JavaIO流基础之字节流与字符流
- 分页插件将SQLServer查询语句转换成分页语句
- POJ 3660 Cow Contest (floyd 传递闭包)
- Activity声明周期的完全解析
- 基数排序
- 算法提高 日期计算&算法提高 5-3日历
- computer vision resource library
- 堆栈的初识
- tableHeaderView中的button点击事件不响应
- putty 下 sqlite3 输出的中文乱码解决办法
- python源代码剖析--读书笔记:第1章 Python内建对象