Floyd传递闭包-POJ-3660-Cow Contest
来源:互联网 发布:周立功单片机培训 编辑:程序博客网 时间:2024/05/19 14:20
Cow Contest
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 8605 Accepted: 4834
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
Source
USACO 2008 January Silver
求能够确定rank的牛牛的数量,那么就是求与其他n-1只牛都有明确关系的牛的数量,用floyd传递闭包解决。
//// main.cpp// 最短路练习-H-Cow Contest//// Created by 袁子涵 on 15/10/14.// Copyright © 2015年 袁子涵. All rights reserved.// 32ms 780KB#include <iostream>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <algorithm>#include <math.h>#define MAXN 105#define INF 0x3f3f3f3fusing namespace std;int N,M,sum=0;int dis[MAXN][MAXN];int main(int argc, const char * argv[]) { cin >> N >> M; memset(dis, 0, sizeof(dis)); int a,b; for (int i=1; i<=M; i++) { scanf("%d %d",&a,&b); dis[a][b]=1; dis[b][a]=-1; } for (int i=1; i<=N; i++) { for (int j=1; j<=N; j++) { for (int k=1; k<=N; k++) { if (dis[j][k]==0 && abs(dis[j][i]+dis[i][k])==2) { dis[j][k]=dis[j][i]; } } } } for (int i=1; i<=N; i++) { for (int j=1; j<=N; j++) { if (dis[i][j]==0 && i!=j) { break; } if (j==N) { sum++; } } } cout << sum << endl; return 0;}
- 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求传递闭包)
- [BZOJ 1053] [HAOI2007]反素数ant 数论+搜索
- 文章标题
- 如果点击事件截取,通过代理继续响应者链
- PostgreSQL & Oracle -1 OLTP "update/select based primary key" & insert
- 最短路径练习-POJ 1860 Currency Exchange
- Floyd传递闭包-POJ-3660-Cow Contest
- Core Location
- 网络原理,以及虚拟机相关配置
- POJ 1230 Pass-Muraille 贪心
- 【codevs3269】混合背包 背包DP裸题
- MAC安装MYSQL
- 比赛排名(猎豹笔试编程题)
- [Python]模拟键盘同时按下几个按键
- 面试小结一:关于操作系统的面试题整理