nyoj 211 Cow Contest 【最短路&&floyd】
2015-11-28 11:32
309 查看
难度:4
描述
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.
输入* 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
There are multi test cases.The input is terminated by two zeros.The number of test cases is no more than 20.输出For every case:
* Line 1: A single integer representing the number of cows whose ranks can be determined样例输入
样例输出
[/code]
Cow Contest
时间限制:1000 ms | 内存限制:65535 KB难度:4
描述
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.
输入* 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
There are multi test cases.The input is terminated by two zeros.The number of test cases is no more than 20.输出For every case:
* Line 1: A single integer representing the number of cows whose ranks can be determined样例输入
5 5 4 3 4 2 3 2 1 2 2 5 0 0
样例输出
2
分析:
简单的floyd算法。
代码:
#include<cstdio> #include<cstring> #include<algorithm> #define mem(x,y) memset(x,y,sizeof(x)) using namespace std; int cow[110][110]; void floyd(const int &n) { for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { cow[i][j]=cow[i][j]||(cow[i][k]&&cow[k][j]); } } int main() { int n,m; while(scanf("%d%d",&n,&m)&&n&&m) { int u,v; memset(cow,0,sizeof(cow)); for(int i=0;i<m;i++) { scanf("%d%d",&u,&v); cow[u][v]=1; } floyd(n); int cnt1,cnt2; cnt1=0; for(int i=1;i<=n;i++) { cnt2=0; for(int j=1;j<=n;j++) { if(cow[i][j]||cow[j][i]) cnt2++; } if(cnt2==n-1) cnt1++; } printf("%d\n",cnt1); } return 0; }
[/code]
相关文章推荐
- bzoj1197 花仙子的魔法 动态规划
- Extjs GridPanel用法详解
- 《剑指offer》——二叉搜索树的后序遍历序列
- DNS
- stand up meeting 11/27/2015-11/29/2015
- <17> go json
- iOS在纯代码中使用AutoLayout添加约束
- 关于 ASPCMS中产品或文章使用分类TAG使用ASPCMS:CONTENT调用出错的解决方法
- 10、MySQL数据库乱码解决办法
- ubuntu常用命令
- 关于response.getWriter()写回数据的实际发生时间点
- CentOS跨网段访问
- Android开发主线程向子线程传值
- 使用Htmlunit工具获取表单中的input
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间
- 用flashAS3.0做一个连线题
- spring 4.x下让http请求返回json串
- 安装scipy
- SQL*Plus环境下创建PLUSTRACE角色
- Redis与Memcached的区别